옵셔널 a가 값이 있다면 그 값을 언래핑하고, a가 nil이면 디폴트 값인 b를 리턴해주는 연산자이다.
삼항 연산자(tenary operator)를 사용하는
a != nil ? a! : b
을 줄인 것이
a ?? b
의 꼴이다.
위의 긴 조건부 연산자를 간결하고 읽기 쉽게 만드는 가장 우아한 연산자라고 공홈에서 소개하고 있음.
let defaultColorName = "red"
var userDefinedColorName: String? // 디폴트는 nil
var colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName이 nil이므로 colorNameToUse는 defaultColorName으로 설정됨.
이런 식으로 사용하면 된다.
만약 userDefinedColorName이 선언이 돼있다면 이 값이 colorNameToUse에 들어간다.
userDefinedColorName = "blue"
colorNameToUse = userDefinedColorName ?? defaultColorName
// colorNameToUse가 userDefinedColorName으로 설정됨.
Basic Operators페이지에서는 이거밖에 모르는 게 없으므로 여기서 끝!