์๋ ํ์ธ์ ๊ฐ์์ ๋๋ค. ์ด๋ฒ ์๊ฐ์๋ assert์ ๋ํด์ ์์๋ณผ๊ฒ์! assert๋ ์กฐ๊ฑด์ ํ์ธํ๊ธฐ ์ํ ํจ์๋ก ์ฃผ๋ก guard๋ฌธ๊ณผ ํจ๊ป ๋ฐฐ์ฐ๋๋ฐ์, ์ด๋ฏธ guard๋ฌธ์ ๋ํ ํฌ์คํ ์ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ํฌ์คํ ์์๋ assert๋ง ๋ค๋ฃฐ ์์ ์ ๋๋ค. guard๋ฌธ์ด ๊ถ๊ธํ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ click!
guard ๋ฌธ์ด๋? (๊ฐ๋จํ๊ฒ ๊ฐ๋ ๋ง (เนหฬตแดหฬต)ู )
๋ญ๊ฐ๋ฅผ ๊ฒ์ฌํ์ฌ ๊ทธ ๋ค์์ ์ค๋ ์ฝ๋๋ฅผ ์คํํ ์ง ๋ง์ง ๊ฒฐ์ ํ๋ ๊ฒ์ผ๋ก, guard๋ฌธ์ ์ฃผ์ด์ง ์กฐ๊ฑด๋ฌธ์ด ๊ฑฐ์ง์ผ ๋ ๊ตฌ๋ฌธ์ด ์คํ๋๋ค. ๋ณดํต ์๋ชป๋ ๊ฐ์ด ํจ์์ ๋ค์ด์ค๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด์ ์ฌ์ฉ๋๋ค.
assert ํจ์๋?
ํน์ ์กฐ๊ฑด์ ์ฒดํฌํ๊ณ ์กฐ๊ฑด์ด ์ฑ๋ฆฝ๋์ง ์์ผ๋ฉด ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ ์ ์๊ฒ ํ๋ ํจ์์ด๋ค. ๋๋ฒ๊น ๋ชจ๋์์๋ง ๋์ํ๊ณ ์ฃผ๋ก ๋๋ฒ๊น ์ค ์กฐ๊ฑด์ ๊ฒ์ฆ์ ์ํ์ฌ ์ฌ์ฉํ๋ค.
๋ค์ ์ฝ๋๋ฅผ ํตํด ๊ธฐ๋ณธ ๋์ ๋ฐฉ์์ ์์๋ณด์.
import Foundation
var value = 0
assert(value == 0)
value = 2
assert(value == 0, "๊ฐ์ด 0์ด ์๋๋๋ค.")
์ด๋ ๊ฒ ํ๊ฒ ๋๋ฉด, ์๋์ฒ๋ผ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ , ๊ฐ์ด 0์ด ์๋๋๋ค ๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ํจ๊ป ์ถ๋ ฅ๋๋ค.
์์ฝ๋์์ ์ฒ์์๋ value๊ฐ 0 ์ด๊ธฐ ๋๋ฌธ์ assert๋ฌธ์ด ํต๊ณผ ๋์์ง๋ง, ๋๋ฒ์งธ์์ value๋ฅผ 2๋ก ๋ฐ๊ฟ์ฃผ์๊ณ , 0์ด ์๋๊ธฐ ๋๋ฌธ์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์์ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ , ์๋ฌ ๋ฌธ๊ตฌ๊ฐ ์ถ๋ ฅ๋ ๊ฒ์ด๋ค. ์ด์ฒ๋ผ assert ํจ์๋ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์์ผ๋ฉด ์๋ฌ๋ฅผ ๋ฐ์์ํจ๋ค. ์ด์ฒ๋ผ assert๋ ๋๋ฒ๊น ์ค ์กฐ๊ฑด์ ๊ฒ์ฆ์ ์ํด ์ฌ์ฉ๋๋ค.
'Swift > Swift BASIC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - extension(ํ์ฅ) (0) | 2022.01.20 |
---|---|
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ํ๋กํ ์ฝ (protocol) (0) | 2022.01.19 |
[Swift] ํ์ ์บ์คํ (Type casting) (0) | 2022.01.19 |
[Swift] ํ๋กํผํฐ ์ต์ ๋ฒ (property observer) (0) | 2022.01.19 |
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ์์ (Inheritance) - sub class, super class๋? (0) | 2022.01.17 |