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