Potato
์•ˆ๋…•ํ•˜์„ธ์š”, ๊ฐ์žก๋‹ˆ๋‹ค?๐Ÿฅ” ^___^ ๐Ÿ˜บ github ๋ฐ”๋กœ๊ฐ€๊ธฐ ๐Ÿ‘‰๐Ÿป

Swift/Swift BASIC

[Swift] ๊ธฐ์ดˆ ๋ฌธ๋ฒ• - assert

๊ฐ์ž ๐Ÿฅ” 2022. 1. 19. 14:22
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š” ๊ฐ์ž์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” 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๋Š” ๋””๋ฒ„๊น… ์ค‘ ์กฐ๊ฑด์˜ ๊ฒ€์ฆ์„ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•