少し間が空いてしまいました・・・・orz
これからは小まめに記事投稿していきますので、よろしくお願いします!!
今回はSwiftのif let という書き方についてです
最近、本格的にSwiftを使い始めたのですが、違和感のある書き方でしたので調べてみました
if letについて
if let
は変数の中身がnilかどうかを判定し、nilでなければ処理を行います
var age: Int? age = 24 if let ageTest = age { print(ageTest) }
上記サンプルではage
が24のためageTest
はnilではないので、24が表示されます(ageTest
はif文の中で使う変数だと思っていてください)
var age: Int? if let ageTest = age { print(ageTest) }
この場合は、age
がnilのため処理は行われません。
こうするとnilでアプリが落ちるのを防ぐことができます
guard letについて
if let
とは別にguard let
というものがあります。どんな違いがあるのでしょう
guard let
の場合は、条件を満たさない場合にreturn
、break
、throw
など、スコープを抜けるコードがないとエラーになるという違いがあります
var age: Int? guard let ageTest = age else { // nilの場合の処理 return }
nilの時にこれ以上処理を進めたくない場合はguard letを使用します
こうすることで、想定外の値で処理を続行してしまうというミスがなくなります。
一般的にはnilの場合に、別の処理を行うというのはあまりよくない処理だと思うので、guard let
の方が使う気がします。
場合によって、if let
とguard let
をうまく使い分けることでExceptionを発生させないようにできると思います