Swift オプショナルバインディングとは

オプショナルバインディングについてまとめます。

まず、なぜ存在するのか?

条件分岐や繰り返し処理のときにオプショナル型にnilが入っていたら処理を分けたいときがあります。そのときに値の有無に応じて処理を分けます。

if  ~ let文を利用します。

 

if let 定数名 = オプショナル型の値 {

   値がある場合の処理

}else {

  値がない場合の処理

}

 

これが基本の書き方

例文

if let _ = str {

print(str)

}

なにこれ?

と思うかもです。まとめます。

 

var str:String?

if let a = str {

print(str)

}

オプショナル型のstrが宣言されています。

a には strを代入してね。その値があるときにはstrを出力しましょう。

という意味です。

しかし、毎回aなどの利用しない変数を宣言するのは、良くないので

引数名を省略したいときには Swiftでは _ が利用できます。

それを利用しています。

だから

if let _ = str {

print(str)

}

こうなります。_ はただ、引数名を省略しているだけですね。