見出し画像

Swiftで行こう!--guardの使いどころ。

guardをどんな時に使うのかを自分でも実際に動かしながら、まとめておきたいと思います。

guard文があります。何をするものかというと、ある条件が成立(True)、不成立(false)によって処理をするものです。

こう書いてしまうとif文と区別がつかないですね。そうです。どこが違うかが大事です。その違いは、

・if文では普通に書き出しができるが、guard文は関数内などで書く必要があ
 る。
・guard文では、条件が合わなければ即座にその処理から抜けることができ
 る。

ここが違います。

実際に動かしてみましょう。if 文ではこんな感じでかけます。

if true{
   print("ok!")
}else{
   print("out!")
}

同じようにguardで書くとすれば、

func test() {
   guard true else {
       return print("out!")
   }
   print("ok!")
}
test() 

となります。

if文では普通に書いていけますが、guard文ではfunc,関数内に書いていますね。あとここが重要なのですが、

guard true else {
       return print("out!")
   }

条件が合わなければすぐ"return"となっていてここで処理が終わっています。ここがミソですね。"early return"で条件が合わなければ即時処理を抜けます。

次に

var a:String? = nil

こんな変数があった場合にアンラップするの時、guard文で値のnilチェックをする場合に使います。例えば、

func greeting(messe: String?) {
   guard let messege = messe else {
       print("nilです")
       return
   }
   print(messege)
}
greeting(messe: nil)

とすると、

nilです

と出力される。

greeting(messe: "Hello")

としてやると"messe"はアンラップされた変数としてguardを抜けた後も使うことが出来ます。

いいなと思ったら応援しよう!