About Swift – Nil, Nill Coalescing Opeartor란?
About Swift – Nil, Nill Coalescing Opeartor란?
Nil이란 무엇인가?
You set an optional variable to a valueless state by assigning it the special value nil
옵셔널 변수에 nil을 할당하면 값이 없는 상태가 된다는 것입니다.
var x : Int?
print(x)
옵셔널 변수를 만들고 나서 값을 할당하지 않았습니다.위의 경우처럼, 상수나 변수가 값이 없는 상태가 존재한다면, 옵셔널 타입으로 선언해야 합니다. 왜냐하면 nil값은 옵셔널 변수나 상수가 아니라면 가질 수 없기 때문입니다. 아무런 값을 할당하지 않았으므로 위의 예제를 실행시켜 보면 nil(무)라는 결과가 나올 것입니다.nil이란 “무” 그 자체라고 이해하셔도 좋겠습니다. 값이 없다는 것입니다.
Nil – Coalescing Operator이란?
한글로 “Nil 병합 연산자”라고도 불리는 이것은 ‘??’ 앞의 값이 nil이면, 뒤의 값이 할당되고, nil이 아니면 ?? 전의 값으로 할당되는 연산자입니다.
let DefaultFood = "kimbob"
var SpecialFood : String?
var TodayFood = SpecialFood ?? DefaultFood
print(TodayFood)
제가 보통 먹는 음식을 김밥이라고 합시다. 오늘의 음식은 특별한 것이 있지 않는 이상, 또 김밥이 될 것입니다.
SpecialFood를 Optional 변수로 선언했고, 아무런 값을 대입해주지 않았기 때문에 자동으로 SpecialFood에는 nil이 들어갑니다. 아쉽게도, 특별한 음식이 없기 때문에 김밥을 먹게 생겼습니다.
var TodayFood = SpecialFood ?? DefaultFood
이 그것을 설명합니다. 오늘의 음식은 ?? 전의 특별한 음식이 없기 때문에, 평소에 먹던 김밥을 먹게 되는 것입니다.
let DefaultFood = "kimbob"
var SpecialFood : String?
SpecialFood = "Chicken"
var TodayFood = SpecialFood ?? DefaultFood
print(TodayFood)
SpecialFood에 새로운 값이 대입되었습니다. Chicken입니다. 특별한 음식이 배달되어 저는 치킨을 먹을 수 있게 되었습니다! nil 병합 연산자는 Swift에서 언래핑하는 방법 중 하나입니다. 옵셔널 변수에 값이 대입되어 있으면, (Chicken) 옵셔널이 언래핑 된 채로 사용할 수 있습니다. 만약, 값이 없다면,(위의 예제) ?? 좌측의 값인 SpecialFood가 대입됩니다.
옵셔널을 언래핑할 때, nil인 경우에 대체할 수 있는 값을 지정해줄 수 있게 됩니다.
제가 이해한 Swift에서의 Coalescing Operator 개념 정리입니다.