2019/12/11 Swift オプショナル型 パート2(nil結合演算子)

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)

 

コメントを残す

メールアドレスが公開されることはありません。