func ?? <T>(T?, () -> T) -> T
Optional
instance or a default value.
nil合体演算を実行します、ラップされた値のOptional
インスタンスまたは省略時の値を返します。
Optional
instance or a default Optional
value.
nil合体演算を実行します、ラップされた値のOptional
インスタンスまたは省略時のOptional
値を返します。
Availability
Technology
func ?? <T>(optional: T?, defaultValue: @autoclosure () throws -> T?) rethrows -> T?
optional
An optional value. オプショナル値。
defaultValue
A value to use as a default. default
and optional
have the same type.
省略時のものとして使うための値。default
とoptional
は同じ型を持ちます。
A nil-coalescing operation unwraps the left-hand side if it has a value, or returns the right-hand side as a default. The result of this operation will be the same type as its arguments. nil合体演算は、左手側をそれが値を持つならばアンラップします、または右手側を省略時のものとして返します。この演算の結果は、それの引数と同じ型になります。
This operator uses short-circuit evaluation: optional
is checked first, and default
is evaluated only if optional
is nil
. For example:
この演算子は、短絡評価を使います:optional
が最初に調べられます、そしてdefault
はoptional
がnil
である場合にのみ評価されます。例えば:
In this example, good
is assigned a value of 100
because Int("100")
succeeds in returning a non-nil
result. When not
is initialized, Int("invalid-input")
fails and returns nil
, and so Int("42")
is called to supply a default value.
この例において、good
は100
の値を割り当てられます、なぜならInt("100")
が非nil
の結果を返すことに成功するからです。not
が初期化されるとき、Int("invalid-input")
は失敗してnil
を返します、そうするとInt("42")
が呼び出されて省略時の値を提供します。
Because the result of this nil-coalescing operation is itself an optional value, you can chain default values by using ??
multiple times. The first optional value that isn’t nil
stops the chain and becomes the result of the whole expression. The next example tries to find the correct text for a greeting in two separate dictionaries before falling back to a static default.
このnil合体演算の結果がそれ自体オプショナル値であることから、あなたは幾らかの省略時の値を??
を複数回使うことで連鎖することができます。nil
でない最初のオプショナル値は、連鎖を停止して、式全体の結果となります。次の例は、挨拶として正しいテキストを2つの独立した辞書から見つけることをある静的な省略時のものに落ち着く前に試みます。
If user
has a value, that value is assigned to greeting
. If not, any value in defaults[greeting
will succeed, and if not that, greeting
will be set to the non-optional default value, "Greetings!"
.
user
が値を持つならば、その値はgreeting
に割り当てられます。そうでないならば、defaults[greeting
の中の何らかの値が後を継ぎます、そしてそれもないならば、greeting
は非オプショナルの省略時の値、"Greetings!"
に設定されます。
func ?? <T>(T?, () -> T) -> T
Optional
instance or a default value.
nil合体演算を実行します、ラップされた値のOptional
インスタンスまたは省略時の値を返します。