nil結合演算子(Nil-Coalescing Operator)
sample1-1
var a:Int?=7722 print(a) //Optional(7722) var b=a ?? 100 print(b) //7722 a=nil b=a ?? 100 print(b) //100
変数aがOptional<Int>型、変数bがInt型の時、
a ?? b
は、
→aが値を保持している場合はaをアンラップして得る「aが保持しているInt型の値」を返す。
→aがnilの場合、bの値を返す。
という挙動になります。sampel1-1ではInt型を例にしましたが、bの型は必ずaのオプショナル型で指定されている型である必要があります。(aがOptional<String>型ならbはString型)
nil結合演算子( ?? )は以下の式の略記法ということです。
a != nil ? a! : b
bがデフォルト値で、aに値があればa(をアンラップした値)、aが無ければデフォルト値であるbが選択される、ということですね。
参考
https://docs.swift.org/swift-book/LanguageGuide/BasicOperators.html
(Nil-Coalescing Operator)