Optional Pattern

장주명·2021년 5월 21일
0

Optionals

목록 보기
6/6

Optional Pattern을 이해하기 위해서는 옵셔널의 구현되어있는것을 알아야한다.

열거형으로 구현되어있고 2개의 캐이스가 있는데 옵셔널에 저장되는 값은 some case에 연관값으로 저장되고

저장되어있지 않는것은 none case이다. 그리고 genericd으로 선언 되어있어

모든 형식을 옵셔널로 활용이 가능하다.

let a: Int? = 0 // 단축문법

let b: Optional<Int> = 0 // 정식 문법

if a == nil { // 아래 문장을 단축한것이다.
    
}

if a == .none {
    
}

if a == 0 { // 아래 문장을 단축한것이다.
    
}

if a == .some(0) {
    
}

이렇게 옵셔널은 열거형으로 구현되어있고 none case와 some case가 있다는것을 이해할수 있다.

if let x = a { // 바인딩하는 법을 아래의 문장을 단축시킨것이다.
   print(x)
}

if case .some(let x) = a {
   print(x)
}


if case let x? = a {
   print(x)
}

Optional Pattern은 바인딩 보다 조금더 단순하게 작성할수 있는 장점이 있다.

let list: [Int?] = [0, nil, nil, 3, nil, 5]

for item in list {
   guard let x = item else { continue }
   print(x)
}


for case let x? in list {
   print(x)
}
profile
flutter & ios 개발자

0개의 댓글

관련 채용 정보