アンラップ
アンラップ
そもそもOptional(値)とはどのような状態でしょうか。
Optionalは値を包み込むラップ(包み紙)のイメージです。オプショナル型は値をOptionalというラップ1枚で包み込んでいます。
すると、たとえ中身がない(=nil)状態でも包み紙だけは存在するため、とりあえず扱うことができます。
この包み紙を取り除き、値を取り出すことをアンラップと言います。
アンラップの種類
Forced Unwrapping (強制的アンラップ)
オプショナル型を強制的にアンラップする方法
欠点
アンラップする対象のオプショナル型の変数の中身がnilだった場合、エラーしてアプリケーションが落ちてしまうこと
強制的アンラップ("!"をつけて)で出力
println(optional!)
Optional Binding (オプショナルバインディング)
オプショナルバインディングはif文などの条件式
オプショナル型の変数に値が入っていればアンラップして処理を行い、値がない(=nil)のときには処理を行わない、または違う処理を行うことができる。
Optional Chaining (オプショナルチェイニング)
オプショナル型の変数に続けてプロパティを取得したり、メソッドを呼び出す場合に使用します。
プショナル型の変数の中身がnilの可能性があっても安全にプロパティを取得したり、メソッドを呼び出せる。ただし、返る値はオプショナル型となる
すべて、目的はオプショナル型の変数から値を取り出すことです。それぞれ使うタイミングと記法が異なるだけ
暗黙的アンラップ型"!"
暗黙的アンラップ型"!"の変数はオプショナル型であるためnilを代入することができるが、使用するときには自動でアンラップしてくれるためそのまま使える。しかし、変数の値がnilのときにはエラーしてしまう。