본문 바로가기
Swift

[Swift] 18. 옵셔널 체이닝, nil 병합 연산자

by CodingKwon 2021. 11. 15.

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

 

'Swift' 카테고리의 다른 글

[Swift] 20. assert, guard  (0) 2021.11.18
[Swift] 19. 타입캐스팅  (0) 2021.11.17
[Swift] 17. 인스턴스  (0) 2021.10.14
[Swift] 16. 상속  (0) 2021.10.14
[Swift] 15. 프로퍼티 Property  (0) 2021.10.07

댓글