์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

Swift - Optional(์˜ต์…”๋„)

yeggrrr๐Ÿผ 2024. 2. 22. 15:16
728x90

 

Optional ??

 

Optional์€ swift๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์‚ฌ๋žŒ๋“ค์ด ๊ฐ€์žฅ ๋งŽ์ด ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œํ•˜๋Š” ๊ฐœ๋… ์ค‘ ํ•˜๋‚˜์ด๋‹ค.

๊ทธ ์ด์œ ๋Š” ์ฝ”๋”ฉ ์ค‘๊ฐ„์— ?(๋ฌผ์Œํ‘œ)๋‚˜ !(๋А๋‚Œํ‘œ)๊ฐ€ ๋ง‰ ์„ž์—ฌ ๋“ค์–ด๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์ง€๊ธˆ๋ถ€ํ„ฐ Optional์€ ์–ด๋А ์ƒํ™ฉ์—์„œ ์œ ์šฉํ• ์ง€ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•œ๋‹ค.
์ด๋ฆ„์„ ํ‘œํ˜„ํ•˜๋Š” ๋ณ€์ˆ˜๋“ค์„ ์ •๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž.

var name : String = "Ygenie"
var pandaName: String = "Fubao"
var carName: String = ???

์œ„์— ์ฝ”๋“œ๋ฅผ ์‚ดํŽด๋ณด๋ฉด,
๋‚˜์˜ ์ด๋ฆ„์„ "Ygenie"๋กœ ํ• ๋‹นํ•˜์˜€๊ณ ,
ํŒ๋‹ค์˜ ์ด๋ฆ„์„ "Fubao"๋ผ๊ณ  ํ• ๋‹นํ•˜์˜€๋‹ค.

๊ทธ๋Ÿฐ๋ฐ, ๋งŒ์•ฝ ๋šœ๋ฒ…์ด๋ผ ์ž๋™์ฐจ๊ฐ€ ์—†์–ด์„œ
์ด๋ฆ„์„ ํ• ๋‹นํ•  ์ˆ˜ ์—†๋‹ค๋ฉด, ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•ด์•ผ ํ• ๊นŒ?

๋ฌผ๋ก , Boolean ๋ณ€์ˆ˜๋ฅผ ๋‘์–ด์„œ
์ž๋™์ฐจ ์œ ๋ฌด๋ฅผ ํ™•์ธํ•˜๊ณ , ์ด๋ฆ„์„ ๋„ฃ์„ ์ˆ˜๋„ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ์—†๋Š” ๋ณ€์ˆ˜์— ๋Œ€ํ•ด์„œ ์ถ”๊ฐ€์ ์œผ๋กœ ๋ณต์žกํ•œ ํ™•์ธ ์ ˆ์ฐจ๋ฅผ ๋ฐŸ์ง€ ์•Š๊ณ ,
ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ Swift์—์„œ ๋งŒ๋“  ๊ฒƒ์ด ๋ฐ”๋กœ Optional์ด๋ผ๋Š” ๊ฐœ๋…์ด๋‹ค.


์–ด๋–ค ๊ฐ’์„ ๊ฐ–๊ฑฐ๋‚˜ ํ˜น์€ ์กด์žฌํ•˜์ง€ ์•Š์Œ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์กด์žฌํ•˜์ง€ ์•Š์Œ์„ ํ‘œํ˜„ํ•  ๋•Œ๋Š” 'nil'์ด๋ผ๋Š” ๊ฐœ๋…์„ ์ด์šฉํ•œ๋‹ค.


๊ทธ๋Ÿผ ์ด์ œ ์‹ค์ œ๋กœ Optional์„ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž!! :-)


์œ„์™€ ๊ฐ™์ด ์ •ํ•œ ๋ณ€์ˆ˜์˜ type์„ ์ ๊ณ  ?(๋ฌผ์Œํ‘œ)๋ฅผ ํ‘œ์‹œํ•˜๋ฉด,
"์• ๋Š” ๊ฐ’์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ๊ณ , ์—†์„ ์ˆ˜๋„ ์žˆ๋‹ค~" 
์ด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ๋œ๋‹ค.

 



์ด๋ฒˆ์—๋Š” ์œ„ ๊ฐœ๋…์„ ์ด์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด์ž!

< 1 >
๊ฐ€์žฅ ์ข‹์•„ํ•˜๋Š” ์˜ํ™” ๋ฐฐ์šฐ ์ด๋ฆ„์„ ๋‹ด๋Š” ๋ณ€์ˆ˜ ์ž‘์„ฑํ•˜๊ธฐ


< 2 >
let num = Int("10")์ด ๋œ num ํƒ€์ž… ์˜ˆ์ƒํ•ด ๋ณด๊ธฐ

 

 

 


 

 

728x90