Swift
[Swift] 18. 옵셔널 체이닝, nil 병합 연산자
CodingKwon
2021. 11. 15. 23:38
1. 옵셔널 체이닝
- 옵셔널 체이닝은 nil일 수도 있는 프로퍼티나, 메소드 그리고 서브스크립트에 질의(query)를하는 과정
- 옵셔널이 프로퍼티나 메소드 혹은 서브스크립트에 대한 값을 갖고 있다면 그 값을 반환하고 만약 값이 nil이면 nil을 반환
- 여러 질의를 연결해서 할 수도 있음
- 연결된 질의에서 어느 하나라도 nil이면 전체 결과는 nil
// 옵셔널 체이닝 사용 시 하나라도 nil이면 nil
func optionalChainingTest(owner: Person?) {
if let guardJob = owner?.home?.guard?.job {
print("우리집 경비원의 직업은 \(guardJob)입니다")
} else {
print("우리집 경비원은 직업이 없어요")
}
}
2. nill 병합 연산자
- ??
- Optional ?? Value
- 옵셔널 값이 nil일 경우, 우측 값을 반환합니다. (띄어쓰기 주의)
var myCar: String? = nil
print("주요 이동수단: " + myCar ?? "걷기") // 주요 이동수단: 걷기
var myCar: String? = "QM3"
print("주요 이동수단: " + myCar ?? "걷기") // 주요 이동수단: QM3