[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - assert
์๋ ํ์ธ์ ๊ฐ์์ ๋๋ค. ์ด๋ฒ ์๊ฐ์๋ assert์ ๋ํด์ ์์๋ณผ๊ฒ์! assert๋ ์กฐ๊ฑด์ ํ์ธํ๊ธฐ ์ํ ํจ์๋ก ์ฃผ๋ก guard๋ฌธ๊ณผ ํจ๊ป ๋ฐฐ์ฐ๋๋ฐ์, ์ด๋ฏธ guard๋ฌธ์ ๋ํ ํฌ์คํ ์ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ํฌ์คํ ์์๋ assert๋ง ๋ค๋ฃฐ ์์ ์ ๋๋ค. guard๋ฌธ์ด ๊ถ๊ธํ๋ค๋ฉด ์ฌ๊ธฐ๋ฅผ click!
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - guard ๊ตฌ๋ฌธ (guard๋ฅผ ์ฌ์ฉํ๋ ์ด์ )
์๋ ํ์ธ์, ๊ฐ์์ ๋๋ค! swift์ ์กฐ๊ฑด๋ฌธ์ ๋ค๋ฅธ ์ธ์ด๋ค๊ณผ ๋น์ทํ๊ฒ if, switch๊ตฌ๋ฌธ์ด ์์ต๋๋ค. ํ์ง๋ง ์ฝ๊ฐ์ ์์ํ ์ ์๋ guard ๋ฌธ์ด ์๋๋ฐ์, ์ด์ ๋ํด์ ์์ธํ ๊ณต๋ถํด๋ณด๊ณ ์ ํฉ๋๋ค. ๊ทธ๋ผ
didu-story.tistory.com
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๋ ๋๋ฒ๊น ์ค ์กฐ๊ฑด์ ๊ฒ์ฆ์ ์ํด ์ฌ์ฉ๋๋ค.