본문 바로가기

Stanford iOS 강의 공부

8. Optionals

Optionals

값을 가지지 않아도 되는 타입

TypeName
// Non-optional Type
TypeName?
// Optional Type

Unwrapping

값을 추출하는 과정, optional에 저장된 값을 사용하려면 값을 unwrapping 해야 함, optional 표현식을 unwrapping 하면 non-optional 타입으로 결과를 return

Forced Unwrapping

값을 강제적으로 추출하는 과정, nil 이 저장된 상태에서 강제 추출하면 오류가 발생

OptionalExpression!

Optional Binding

Optional을 안전하게 처리하는 방법

if let name : Type = OptionalExpression {
    statements
}

while let name : Type = optionalExpression {
    statements
}

guard let name : Type = OptionalExpression else {
    statements
}

Implicity Unwrapped Binding

처리할 자료형 즉 Non-optional 타입을 지정하면 자동으로 unwrapping 됨

Type!

Nil-coalescing Operator

 

논리연산자와 같이 단란 평가 실행, 값이 존재한다면 왼쪽 실행, 값이 존재하지 않는다면 오른쪽 실행

 

a ?? b
OptionalExpression ?? Expression

Optional Chainning

Optional chainning의 결과는 항상 optional, Optional chainning에 포함된 표현식 중 하나라도 nil을 return 한다면 이어지는 표현식을 평가하지 않고 nil을 return