Declaration
@frozen enum Optional<Wrapped>
Overview
Optional
이라는 단어를 입력하지 않더라도 선택적 값을 사용할 때마다 Optional
타입을 사용합니다. Swift
의 타입 시스템은 일반적으로 전체 타입 이름을 표시하는 대신 **? 마크
**와 함께 래핑된 타입의 이름을 표시합니다. 예를 들어, 변수의 타입이 Int?
인 경우 이는 Optional<Int>
를 작성하는 또 다른 방법일 뿐입니다. 코드를 읽고 쓰기 쉽도록 축약형을 선호합니다.아래 두 상수의 타입은 동일합니다.
let shortForm: Int? = Int("42")
let longForm: Optional<Int> = Int("42")
Optional
타입은 두가지 경우가 있는 열거형입니다.
Optional.none
은 nil
리터럴롸 동일합니다.Optional.some(Wrapped)
은 래핑된 값을 저장합니다.let number: Int? = Optional.some(42)
let noNumber: Int? = Optional.none
print(noNumber == nil)
// Prints "true"
여러 컨텍스트에서 사용하려면 먼저 Optional 인스턴스의 값을 언래핑해야 합니다. Swift는 Optional 값을 안전하게 해제하는 여러가지 방법을 제공하므로 명확하고 간결한 코드를 작성하는 데 도움이 되는 방법을 선택할 수 있습니다.
let imagePaths = ["star": "/glyphs/star.png",
"portrait": "/images/content/portrait.jpg",
"spacer": "/images/shared/spacer.gif"]