[初心者向け] Swift guardの使い方 2019

本記事では、Swiftのguardについて解説していきます。

なお本記事でのSwiftとXcodeのバージョンは以下の通りです。

Swift 4.2
Xcode 10.0

◾︎あわせて読みたい記事↓↓

✔︎Swift・アプリ開発の勉強法を現役エンジニアがまとめた【おすすめサイト・サービス10選】

Swift・アプリ開発の勉強法を現役エンジニアがまとめた【おすすめサイト・サービス9選】

guardとは

Swiftのguardはある条件が満たされない場合処理が行われるものです。

書き方は、

guardの後の条件が成立しなかった時、elseの中の処理が行われます。

if文との違いは、if文はある条件が成立したとき〜〜

一方で、guard文は、ある条件が成立しなかった時〜〜

といった違いがあります。

とはいっても下のようにif文で否定条件にすれば良いのでは、と思うかもしれません。

if文でももちろん良いのですが、guard文を使う理由はコードの読みやすさだと思います。

・guard -> 処理を続ける条件に合わないから抜ける
・if -> 処理を中断する条件に合うから抜ける

となり、guardの方が自然に理解しやすいです。

※guard文では、else節の最後にreturn,break,throwのいずれかを書くことがポイントです。これを書かないとエラーになります。

・return //処理を終了する
・break //繰り返し処理を終了する forやwhileと一緒に使う
・throw //エラー処理。例外を投げる

次はguardの具体的な使い方をみていきましょう。

guardの基本的な使い方

guard let (オプショナルバインディング)

guard文で典型的な使い方はguard letですね。オプショナル型を安全に取り出す際に使います。イメージとしては、if let構文に近い感じです。

guard letでは変数がnilだった時の処理を行います。

if let構文では、変数がnilじゃなかった時の処理です。if letについてはこちらを参考にしてください。

optional型についてよく分からない場合は一度こちらの記事を読んでみてください。

ではguard letの使い方をみていきます

上では、変数testNumがnilではないので、else節には入らず、print(num)が実行されます。

一方で、

この場合、testNumはnilなので、else節に入っていき、returnが行われ、その後のprint(num)は実行されない。

終わりに

Swiftのguard文は上手く使いこなせると便利ですね。if letも似たような処理を行えるので、あわせて確認してみましょう〜。

◾︎あわせて読みたい記事↓↓

✔︎Swift・アプリ開発の勉強法を現役エンジニアがまとめた【おすすめサイト・サービス10選】

Swift・アプリ開発の勉強法を現役エンジニアがまとめた【おすすめサイト・サービス9選】