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を抜けた後も使うことが出来ます。