### nil을 사용할 수 있는 타입과, 사용할 수 없는 타입을 구분하기 위하여 사용하는 열거형. ### nil 이란? - **값이 없음을 필요하는 키워드** ```swift enum Optional<Wrapped> { case some(Any) case none } ``` <br/></br> ### 옵셔널값을 추출하는 방법 1. **강제 추출 연산자를 붙여 강제로 옵셔널값을 추출** ```swift let name: String? = "hano" print(name!) ``` 2. **if문으로 `nil`이 아님을 확인 후, 강제로 추출** ```swift let name: String? = "hano" if name != nil { print(name!) } ``` 3. **Optional Binding** - 바인딩(상수나 변수에 대입)이 되는 경우만 특정 작업을 진행. ```swift if let n = name { print(n) } func doSomething(name: String?) { // func에서만 사용가능 guard let n = name else { return } print(n) } ``` 4. **Nil-Coalescing** ```swift print(name ?? "신원미상") ``` 5. **Optional Chaining** - 표현식 자체가 옵셔널의 가능성이 있다는 것을 표현. - 체이닝의 결과는 항상 옵셔널이다. ```swift korea?.seoul?.jungGu ```
Activity