[Swift] Optional
Updated:
Optional 이란
- 래핑(wrapping)된 값 혹은 값의 부재(
nil
)를 나타내는 enum타입이다.case some(value)
: 값이 존재하는 경우의 associated value를 래핑한 케이스case none
: 값이 존재하지 않는 경우의 케이스
Optional 타입 선언 방식
let value : type?
혹은let value: Optional<type>
Optional Binding
-
Swift 가 제공하는 몇가지 Optional Bidning 을 통해서 옵셔널 값을 언래핑(unwrapping)할 수 있다.
- if문 (블록 내에서만 사용 가능)
if let unwrapped = optional 변수 { ... }
- guard 문
guard let unwrapped = optional 변수 else { ... return }
- switch-case 문 (각 case 문 안에서만 사용 가능)
switch optional 변수 { case let unwrapped: .... }
- if문 (블록 내에서만 사용 가능)
Optional Chaining
- 연쇄적으로 옵셔널 변수의 프로퍼티와 메서드에 안전하게 접근할 수 있는 방법이다.
wrapped?.method()?.property
Nil-Coalescing Operator (병합 연산자)
- 옵셔널 변수가 nil 일 경우 default 로 값을 지정해줄 수 있다.
wrapped ?? value
강제 Unwrapping
- 옵셔널 변수가 값을 가지고 있다는 확신하에 강제적으로 옵셔널 변수를 unwrapping 하는 방법이다.
- 옵셔널 변수가 nil일 경우 강제 언래핑을 진행하면 크래시가 발생한다.
wrapped!
Leave a comment