Swift 標準ライブラリ >     ??(_:_:)


汎用演算子


??(_:_:)


nil 合体操作を実行し、Optional インスタンスの密封された値またはデフォルトの Optional の値を返します。





宣言


func ??<T>(optional: T?, defaultValue: @autoclosure () throws -> T) rethrows -> T?


パラメータ


optionaloptional の値。
defaultValueデフォルトとして使用する値。defaultValue と、optional は、同じ型を持ちます。


議論


nil 合体操作は、値がある場合は左側を開封し、デフォルトの場合は右側を返します。この操作の結果は、その引数と同じ型になります。


この演算子は短絡評価を使用します。optional は最初にチェックされ、defaultValueoptionalnil の場合にのみ評価されます。例えば:


let goodNumber = Int("100") ?? Int("42")
print(goodNumber)
// Prints "Optional(100)"

let notSoGoodNumber = Int("invalid-input") ?? Int("42")
print(notSoGoodNumber)
// Prints "Optional(42)"


この例では、Int("100")nil でない結果を返すのに成功したため、goodNumber100 の値を代入されます。notSoGoodNumber が初期化されると、Int("invalid-input") は失敗し、nil を返し、したがって、Int("42") メソッドが呼び出されてデフォルト値が提供されます。


let greeting = userPrefs[greetingKey] ??
    defaults[greetingKey] ?? "Greetings!"


userPrefs[greetingKey] に値がある場合、その値は greeting に代入されます。そうでない場合は、default[greetingKey] の任意の値は成功し、そうでない場合は、greeting は optional でないデフォルト値の "Greetings!" に設定されます。


目次
Xcode の新機能

  • 言語:Swift
  • 宣言
  • パラメータ
  • 議論












  • トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)