Swift 標準ライブラリ >     ??(_:_:)
汎用演算子
??(_:_:)
nil 合体操作を実行し、Optional インスタンスの密封された値またはデフォルト値を返します。
宣言
パラメータ
optional | optional の値。 |
defaultValue | デフォルトとして使用する値。defaultValue は、optional の Wrapped (密封された)型と同じ型です。 |
議論
nil 合体操作は、値がある場合は左側を開封し、デフォルトの場合は右側を返します。この操作の結果は、左辺の Wrapped (密封)された型の optional でない型を持ちます。
この演算子は短絡評価を使用します。optional は最初にチェックされ、defaultValue は optional が nil の場合にのみ評価されます。例えば:
func getDefault() -> Int { print("Calculating default...") return 42 } let goodNumber = Int("100") ?? getDefault() // goodNumber == 100 let notSoGoodNumber = Int("invalid-input") ?? getDefault() // Prints "Calculating default..." // notSoGoodNumber == 42
この例では、Int("100") が nil でない結果を返すのに成功したため、goodNumber は 100 の値を代入されます。notSoGoodNumber が初期化されると、Int("invalid-input") は失敗し、nil を返し、したがって、getDefault() メソッドが呼び出されてデフォルト値が提供されます。