見出し画像

【Swift】guard文、guard let文の使い方/ if letとの違いも

if let

if letを使う場合はnilの場合で行いたい処理を行いたい場合です。

var helloStr : String? = nil
var emptyStr : String = ""

// if let
if let hogeStr = helloStr {
   print(hogeStr)
} else {
   print("hogeStrの中身、nilでした。")
}

guard

guardはエラーの確認や値がnilではないかどうかなどチェックし、早期リターンする場合に使われます。

気をつけないといけないのは、条件式がfalseの場合に、returnなどスコープの外に退出する処理を入れないといけません。

下記コードの中でいうreturnが該当します。

guard let

代入する値がnilの場合はfalseの処理が行われます。
こちらも同様にスコープ外に退出する処理を入れる必要があります。

var helloStr : String? = nil
var emptyStr : String = ""

func guradTest () {
   
   // 1:guard
   guard emptyStr == "" else {
       //条件式がfalseの時にこちらの処理が呼び出され、スコープ外に出るようにreturnなど行う必要がある
       return
   }
   
   // 2:guard let
   guard let guardStr = helloStr else {
       // helloStrがnilの時にこちらの処理が実行される。
       return
   }
   // helloStrがnilではない時にこちらの処理が実行される。
   print(guardStr)
}

オプショナル型のオプショナルバインディングなどでも使用するので、
guard、guard letをうまく活用してみてください。

オプショナル型についてはこちらで解説しています。


こちらの参考書は初心者から上級者まで読みやすく、
読み応えあるのでおすすめしておきます。

https://amzn.to/3hJUHnJ

この記事が気に入ったらサポートをしてみませんか?