Swift
Swift) 옵셔널 - Optional
붱이🦉
2019. 4. 18. 14:13
Optional
변수에 값이 존재하지 않을 수도 있다는 것을 명시한다.
다른 말로 하면 옵셔널이 아닌 변수는 무조건 값을 가져야한다.
값이 꼭 필요한 변수에는 옵셔널이 아닌 타입으로 선언함으로서 , 사전에
nil
이 들어오는 걸 막을 수 있다.또 ,
Optional
로 선언함으로서 ,nil
이 들어올 수 있으니 , 대처가 필요하다는 것을 프로그래머에게 인지 시켜줄 수 도 있다.
Optional 은 제네릭 타입을 지원하는 열거형이다.
enum Optional<T>{
case .some // 값이 존재하는 경우
case .none // nil 인 경우
}
Optional<Int> = Int? // 동일한 표현이다
optional
은.some/.none
두가지경우 중 하나를 를 무조건적으로 가지는 열거형 이다.
Optional 에서 값을 얻어오기
struct Box{
var item
}
var mysteryBox : Box?
Optional Binding : 옵셔널 바인딩
guard let fullBox = mysteryBox as? Box else { return // 값의 부재 nil } fullBox.item // 값이 존재하는 지 확인후 Unwrapping
Optional Chaining : 옵셔널 체이닝
mysteryBox?.item // mysteryBox 유효하면 item에 접근한다.
Unconditional Unwrapping: 강제추출
mysteryBox!.item // 값의 유무를 확인하지 않고 강제적으로 Unwrapping한다