
Swiftでguardを使うメリットと使い方をご紹介!
2021.02.19
Swift では guard を使った方がいい?
Swift 2.0から追加された「guard」。
基本的な使い方は if と同じで、定数や変数に nil が含まれていないか判断するために使われます。
しかし、Swift では if よりも guard を使う方が断然おすすめなのです。
今回は、guard を使うメリットと、その使い方について解説していきます。
こちらの記事もオススメ!
メリット①コードのメンテナンスがしやすい
nil を確認してアンラップする記述に guard を使うと、コードが見やすく、メンテナンスが楽になります。
guard と if の記述を比較
実際に、guard と if のコードを比較してみましょう。
guard
guard は、下記のように記述します。
1 2 3 4 5 | let testint:Int? = nil guard let unwrapint = testint else { return } |
if
上のコードを if に直すと、こうなります。
1 2 3 4 5 6 7 | let testint:Int? = nil if let unwrapint = testintif { print(“nilではない”) } else { return } |
やっていることは同じでも、guard の方が簡潔
どちらも testint をオプショナル型として宣言し、nil を代入しています。
もし、nil 以外の数字を代入している場合、testint から unwrapint へ数字が代入され、そのまま処理が継続されます。
今回は、testint に nil が代入されているため、return が実行されて処理が終了します。
両者とも同じ処理をしていますが、if よりも guard の方がシンプルな記述になっていますね。
if だと分岐処理と以上処理の見分けがつきにくいですが、guard ならば一目で異常検知であることがわかります。
このように、guard はスコープを抜けるための処理がより簡潔に書けるため、メンテナンスの負担を軽減するのです。
メリット②変数や定数がその後の処理で使える
if で nil を確認後に変数や定数を使う場合、if の{}の中でしか使用することができません。
しかし、guard で nil を確認した変数や定数は、guard 処理後も使用することができます。
一度確認したら、その後も確認する必要はありません。
先ほどのコードで説明しましょう。
guard
1 2 3 4 5 6 7 | let testint:Int? = 10 guard let unwrapint = testint else { return } unwrapint = unwrapint + 1 //エラーにならない |
上記のコードでは、testint にオプショナル値の「10」が入っています。
guard 文により、アンラップされたオプショナル値ではない10が「 unwrapint 」に入ります。
unwrapint は guard 文の外でも使用できるので、その後の計算式で使えます。
if
それでは、if で記述した場合はどうでしょうか?
1 2 3 4 5 6 7 8 9 | let testint:Int? = 10 if let unwrapint = testintif { print(“nilではない”) } else { return } unwrapint = unwrapint + 1 //エラーになる |
この場合、unwrapint は if 文の中でのみ使用することができます。
もちろん、if 文の外で使用するとエラーになってしまいます。
guard の方が、その後の処理をスムーズに行うことができるというわけです。
さいごに
今回は、Swift を使うならぜひ知っておきたい guard について説明しました。
if と同じ処理をしますが、異常処理とアンラップが同時にできるため、guard の方が読みやすいコードを書くことができます。
覚えておくととても便利なので、ぜひ guard を使ってみてくださいね!
記事を書いた人
システム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
こちらの記事もオススメ!
ライトコードよりお知らせ






一緒に働いてくれる仲間を募集しております!
ライトコードでは、仲間を募集しております!
当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。
また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!
なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。
ライトコードでは一緒に働いていただける方を募集しております!
採用情報はこちら書いた人はこんな人

IT技術2021.03.02TypeScriptの型を問題形式で学べる「type-challenges」とは?
IT技術2021.03.01シスコルータのコンフィグ作成をPythonで自動化してみた!
IT技術2021.02.23【Unity】ARFoundation入門~機能解説から平面検知の実装まで~
IT技術2021.02.22Swiftでguardを使うメリットと使い方をご紹介!