optional
-
[Swift] Optional - 2 (IUO, Nil-Coalescing, Optional Chaining)Swift 2022. 2. 14. 23:57
์ง๋ ์๊ฐ์ ์ด๋ฒ์๋ IUO, Nil-Coalescing Operator, Optional Chaining์ ๋ํด ์ฐจ๋ก๋๋ก ์ดํด๋ณด์. 1. IUO (Implicitly Unwrapped Optionals) IUO๋ Implicitly Unwrapped Optionals์ ์ค์๋ง์ผ๋ก, ํน์ ์กฐ๊ฑด์์ ์๋์ผ๋ก ์ถ์ถ๋๋ Optional์ด๋ค. Type! ์๋ฃํ ๋ค์ !๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉํ๋ฉฐ, ๊ฐ์ Non-Optional๋ก ์ ์ฅํ๋ฉด ์๋์ผ๋ก unwrapping์ด ๋๋ค. ์๋ ์์๋ฅผ ๋ณด์. ์์ num์ IUO๋ก ์ ์ฅํ๊ณ , ์์ a์ ๊ฐ์ num์ผ๋ก ์ด๊ธฐํํด์ฃผ์๋ค. ์์์ ๊ณต๋ถํ ๋๋ก๋ผ๋ฉด, IUO๋ ์๋์ผ๋ก ์ถ์ถ๋๊ธฐ ๋๋ฌธ์ ์์ a์ ํ์ ์ Non-Optional Int์ด์ด์ผํ๋ค. ํ์ง๋ง a์ ํ์ ์ Optional ..
-
[Swift] Optional - 1 (Forced Unwrapping, Optional Binding)Swift 2022. 2. 14. 23:56
(๋ชจ๋ ์ฝ๋๋ Playground์์ ์์ฑ๋์์ต๋๋ค.) ์ด๋ฒ ์๊ฐ์๋ Optional์ ๋ํด ๊ณต๋ถํด๋ณด๊ณ ์ ํ๋ค! ์ง๊ธ๊น์ง ๋ชจ๋ ์์์ ๋ณ์๋ค์ ๊ฐ์ ์ ์ธํ ํ ์ด๊ธฐํ๋ฅผ ํ์๋ค. ์ฆ, ๋ชจ๋ ๊ฐ์ด ์กด์ฌํ์๋ค. ์ด๋ ๊ฒ ๊ฐ์ด ์กด์ฌํ๋ ๊ฒ๋ค์ Non-Optional ์ด๋ผ๊ณ ํ๋ค. ๊ทธ๋ ๋ค๋ฉด Swift์์ ๊ฐ์ ์ ์ฅํ์ง ์์ผ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น? ๋ฐ๋ก Optional์ ์ฌ์ฉํ๋ฉด ๋๋ค. Type? Optional์ ์๋ฃํ์ ํ์ ๋ค์ ?๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉํ๋ ๊ฒ์ผ๋ก, Optional์ด๋ผ๋ ์๋ฏธ ๊ทธ๋๋ก ๊ฐ์ ๊ฐ์ ธ๋ ๋๊ณ , ๊ฐ์ ๊ฐ์ง์ง ์์๋ ๋๋ค. ๊ฐ์ด ์์์ ํํํ๊ธฐ ์ํด์๋ nil์ด๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ ๊ณง ์๋ฌด๊ฒ๋ ์ ์ฅํ์ง ์๊ฒ ๋ค๋ ๊ฒ๊ณผ ๊ฐ๋ค. let optionalVal: String? = nil ์๋ ์ฝ๋๋..