๋๋ค๋ฆฌ๋ ๋๋ค๊ฒจ๋ณด๊ณ ๊ฑด๋์.
Optional: ๋ฐ์ดํฐ๊ฐ ์์ ์๋ ์๊ณ ์์ ์๋ ์๋ ์ํ๋ฅผ ๋ํ๋ด๋ ๊ฒ
Optional์ ์ฌ์ฉํ ๋๋ 2๊ฐ์ง Case๊ฐ ์๋ค.
(1) ์ด๋ค ๊ฐ์ด ์์ด์ ๊ทธ ๊ฐ์ ์ธ ์ ์๋ ๊ฒฝ์ฐ
(2) ์์ ๊ฐ์ด ์์ด์ ์ ๊ทผํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ - nil: ์์ง ๊ฐ์ด ์๋ค.
โป ํ์์ ๋ฐ๋ผ์ ๋งค๊ฐ๋ณ์๋ฅผ ์ต์ ๋๋ก ๋ฐ๋ ํจ์๋ฅผ ๋ง๋ค ์๋ ์๋ค.
์ต์ ๋์ ์ ์ํ๋ ๋ฒ
Optional์ ์ ์ํ ๋๋ ์ด๋ค Type ๋ค์ ?๋ฅผ ๋ถ์ด๋ฉด ๋๋ค.
์ด ๋, Optional์ ์ธ ๋๋ ์ด๋ค ๊ฐ์ด ๋ค์ด์ฌ์ง ๋ชจ๋ฅด๊ธฐ์ Type - Inferring์ด ์๋๋ฏ๋ก Type์ ๋ฐ๋์ ๋ฃ์ด์ค์ผํ๋ค.
Optional์์ ๊ฐ์ด ์๋์ง ํ์ธํ๊ณ ๊ฐ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ | Optional Binding
let userInputAge = "24"
let userAge:Int? = Int(userInputAge)
print(userAge) // Optional(24)
// Optional binding ์ฌ์ฉ ์
if let printAge = userAge{
print(printAge)
} // 24
๊ฐ์ ์ธ๋ํ | Force - unwrapping
if ๋ฌธ์ ์ด์ฉํด์ nil์ด ์๋์ง ํ์ธํ๊ณ ๋ด๋ถ์ ๊ฐ์ด ์๋๊ฒ ํ์ธ๋๋ฉด !๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ ๋ก unwrapping ํ ์ ์๋ค.
! ์์ฒด๋ nil ์ฌ๋ถ์ ๊ด๊ณ ์์ด ๋ณ์๋ฅผ ๊บผ๋ด๋๋ก ์ธ๋ํ์ ์๋ํ๊ธฐ์ ํ๋ก๊ทธ๋จ์ด ๊ฐ์ ๋ก ์ข ๋ฃ๋ ์ ์์ด ์ฌ์ฉ์ ์ฃผ์ํด์ผํ๋ค.
์ค์ํํธ ์ปค๋ฎค๋ํฐ์์๋ !๊ฐ crash๋ฅผ ์ ๋ฐํ๋ ๊ฒฝ์ฐ๊ฐ ์์ด crash- operator๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
'๐ iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] Protocols | Delegate๋ฅผ ์ด์ง ๊ณ๋ค์ธ (0) | 2022.02.25 |
---|---|
[Swift] Guard๋ฌธ | guard let (0) | 2021.08.03 |
[Swift] ๊ธธ์ด๊ฐ ์ ํด์ง ๋ฆฌ์คํธ ๋ง๋ค๊ณ 0์ผ๋ก ์ด๊ธฐํํ๊ธฐ (0) | 2021.06.30 |
[Swift] Class์ Inheritance(์์) (0) | 2021.06.22 |
[Swift] Structure (0) | 2021.03.23 |