
제시된 코드는 Swift의 nil 병합 연산자(nil-coalescing operator)인 ??를 사용하는 예시입니다.
let optionalValue: String? = nil
print(optionalValue ?? "디폴트값이 들어가요!")
let optionalValue: String? = nil
optionalValue는 String? 타입(옵셔널 문자열)의 상수로 선언되었습니다.nil이 할당되었습니다. 즉, 이 옵셔널은 값을 가지고 있지 않습니다.print(optionalValue ?? "디폴트값이 들어가요!")
?? 연산자는 좌측의 옵셔널 값이 nil인 경우 우측의 기본값을 사용하는 연산자입니다.optionalValue는 nil이므로, ?? 연산자의 우측에 있는 "디폴트값이 들어가요!"가 사용됩니다."디폴트값이 들어가요!"가 출력됩니다.Nil 병합 연산자는 다음과 같이 작동합니다:
a ?? b
a가 nil이 아니라면, a의 값을 언래핑하여 반환합니다.a가 nil이라면, b의 값을 반환합니다.let name: String? = "변창원"
let greeting = "안녕하세요, " + (name ?? "손님") + "님!"
print(greeting) // "안녕하세요, 변창원님!" 출력
let name: String? = nil
let greeting = "안녕하세요, " + (name ?? "손님") + "님!"
print(greeting) // "안녕하세요, 손님님!" 출력
let primaryName: String? = nil
let secondaryName: String? = nil
let tertiaryName: String? = "백업 이름"
let displayName = primaryName ?? secondaryName ?? tertiaryName ?? "이름 없음"
print(displayName) // "백업 이름" 출력
let count: Int? = nil
let message = "항목 수: " + String(count ?? 0)
print(message) // "항목 수: 0" 출력
Nil 병합 연산자는 다음과 같이 비유할 수 있습니다:
음식 주문 비유:
계획 비유:
Nil 병합 연산자는 다음과 같은 상황에서 특히 유용합니다:
사용자 설정 적용:
let userPreferredColor = userSettings.backgroundColor ?? .white
API 응답 처리:
let username = response.user?.name ?? "익명 사용자"
폼 입력 검증:
let email = emailTextField.text ?? ""
기본값 제공:
let quantity = productQuantity[productId] ?? 0
Nil 병합 연산자는 옵셔널을 다룰 때 코드를 간결하게 만들어주는 강력한 도구입니다. if let과 같은 옵셔널 바인딩보다 더 간단하게 기본값을 제공할 수 있어, 특히 옵셔널 값에 기본값을 제공해야 하는 상황에서 매우 유용합니다.