스위프트 Nil Coalescing Operator | 스위프트강좌 Swift

스위프트 Nil Coalescing Operator

스위프트에서 nil은 단골손님입니다. 그리고 이런 nil은 효율적으로 처리하기 위한 다양한 방법들이 존재하는데요. 그 중 하나가 스위프트 Nil Coalescing Operator 입니다.

Nil Coalescing Operator, 낯선 단어때문에 더 멀게 느껴지지만 아주 간단합니다. 

코드를 보다보면 다음과 같은 경우가 있습니다. 

let value = a ?? b 

물음표 두 개가 연달아 붙어있는데 무슨 의미일까요? 물음표는 Optional을 표현하는데요. 

그럼 또 하나의 물음표는 무엇일까요? 3중 조건 연산자(Tenary Conditional Operator)를 의미합니다. 

3중 조건 연산자를 간단히 배워보면, 다음과 같습니다.

a >= 0 ? “양수” : “음수” 

a라는 값이 0보다 크거나 같나요? 에 대한 조건 판단을 통해 참일 경우는 “양수”값을 택하는 것입니다. 

반대로 0보다 작다면 거짓(false)이며 거짓일 경우는 “음수”값을 택합니다.

이것이 3중 조건 연산자의 활용입니다.

그럼 위의 내용으로 다시 가보죠.

let value = a ?? b 

이것을 풀어쓰면 다음과 같습니다.

let value = a != nil ? a! : b 

a라는 Optional형을 가진 변수가 nil이 아닌 특정 값을 가진다면 a에 들어있는 값을 추출합니다. 여기서 느낌표는  a라는 값이 Optional형일 경우 안에 들어있는 값을 추출하는 용도로 사용되는 강제 추출 연산자라는 것을 이해하세요. 

따라서, 옵셔널형을 가진 a라는 변수가 nil값을 아닙니까? 라는 수식을 참으로 만족하면 옵셔널형 변수 a는 어떤 값을 가지고 있다고 판단됩니다. 따라서 이 경우 변수 a에 포함된 값을 추출 및 할당하는 것이죠.

반대로 위의 수식을 만족하지 않는다는 것은 a라는 옵셔널형의 변수에 값이 존재하지 않는다는 것이므로 b를 할당합니다.  

답글 남기기