Nil 병합 연산(Nil-coalescing)이란?

devapploper·2021년 1월 31일
1

스위프트 zero to hero

목록 보기
6/10

coalescing은 "하나로 합치다" 라는 뜻이다. nil-coalescing은 한글로 "nil 병합 연산"이라고도 한다.

nil-coalescing은 스위프트에서 옵셔널은 언래핑하는 방법 중 하나다.

언래핑하고자 하는 옵셔널 값을 ?? nil 병합 연산자 좌측에 놓고, 옵셔널에 값이 없을 때 우측에 대신할 값을 적으면 된다.

옵셔널에 값이 있으면, 옵셔널이 언래핑 된 채로 사용할 수 있고, 만약 값이 없고 nil이라면 ?? 연산자 우측에 적은 대체값을 사용한다.

var myCar: String? = nil
print("주요 이동수단: " + myCar ?? "든든한 내 두 다리") // 주요 이동수단: 든든한 내 두 다리

위에 옵셔널 StringmyCar에는 값이 없는 것을 확인할 수 있다. 그리고 다음 줄에서 myCar을 nil-coalescing을 통해 옵셔널 언래핑을 하는데 값이 없기 때문에 ?? 연산자 좌측에 적어놓은 값이 출력된다.

myCar에 값이 있는 경우에는 myCar의 옵셔널을 언래핑하고 그 안의 값을 출력한다.

var myCar: String? = "beamers"
print("주요 이동수단: " + myCar ?? "든든한 내 두다리") // 주요 이동수단: beamers

만약 옵셔널을 언래핑하는데 nil인 경우에 inline에서 대체값을 지정해주고 싶다면 nil-coalescing을 사용해서 간편하고 안전하게 옵셔널을 언래핑할 수 있다.


옵셔널에 대한 7가지 개념

  1. force unwrapping ✅
  2. optional binding - if ✅
  3. optional binding - guard ✅
  4. nil coalescing ✅
  5. optional chaining
  6. implicitly unwrapped optional
  7. optional pattern
profile
iOS, 알고리즘, 컴퓨터공학에 관련 포스트를 정리해봅니다

2개의 댓글

comment-user-thumbnail
2021년 7월 8일

Swift 공부중인데 Optional binding 덕분에 잘 배워갑니다 :)

한가지 궁금한게 있습니다.
print("주요 이동수단: " + myCar ?? "든든한 내 두다리")
위 부분에서 + 로 하면 에러가 나오던데 ,(컴마)를 사용해야하나요?

1개의 답글