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 ํ์
์์ํด ๋ณด๊ธฐ