オプショナル型のアンラップについて Swift4

[`evernote` not found]
LINEで送る
Pocket

オプショナル型=変数にnilの代入を許すデータ型
宣言方法:変数のデータ型の最後に”?”か”!”をつける

※オプショナル型の変数は宣言をしただけで初期化をしなかった場合、nilが入っている

暗黙的アンラップ型”!” =使用する際に自動でアンラップされる
オプショナル型の宣言には”?”か”!”を用いますが、”!”を用いて宣言したオプショナル型(暗黙的アンラップ型)は下記のように使用する際に自動でアンラップされます。

暗黙的アンラップ型は、

最初はnilで宣言⇒使用時には絶対に値が入っている(nilではない)

という使い方の際に使用します。
そのため、使用するときに変数の値がnilのときにはエラーとなりますので要注意です。

 

アンラップ=オプショナル型から値を取りだす

アンラップの方法は下記3通り

1. Forced Unwrapping (強制的アンラップ)
オプショナル型を強制的にアンラップする方法で、
オプショナル型の後ろに”!”をつける

2. Optional Binding (オプショナルバインディング)
オプショナル型の変数に値が入ってる⇒アンラップ⇒処理{}を実行
オプショナル型の変数に値がない(=nil)⇒処理{}を行わない、もしくはelse{}の処理を実行

※他にもあるエラーハンドリング
if let 変数2 = try? 変数1 {}
try?はエラーが発生するとnilを返すオプショナル型変数、この組み合わせでエラーにならないようにしています

3. Optional Chaining(オプショナルチェイニング)
オプショナル型の変数に続けてプロパティを取得したり、メソッドを呼び出す場合に使用する、戻り値はオプショナル型になる
戻り値がオプショナル型となるため、オプショナル型の変数の中身がnilの可能性があってもプロパティを取得したり、メソッドを呼び出せる。

使用方法:オプショナル型の変数のあとに”?”をつける
オプショナル型の変数?.プロパティ
オプショナル型の変数?.メソッド()

【例1】

【例2】

 

[`evernote` not found]
LINEで送る
Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA