9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Swift】guard句って?なんのためにあるの?

Posted at

今回はSwiftライクなコーディングが可能な、guard句についてまとめました。

はじめに

Swiftの言語仕様についておさらいします。

Swiftはnull安全が謳われた、Apple発の比較的新しい言語です。

"Null安全"については次の記事でまとめようと思っていますが、
簡単に説明すると
「意図せずNullが入るパターンがないようにしよう!」
というものです。(違ったらご指摘ください。。)

guard句は、そのNull安全に一役買っているものでもあります。

guard句とは

メソッドの処理を行う前に、値が正しいものであるかチェックが必要なことがあります。

そんな時に使用できるのがguard句です。

guard句は、指定した条件によって、メソッドのスコープから抜けるためのものです。

基本構文

guard 条件式 else {
    // 処理を抜ける等の処理
    return
}

条件式に当てはまらない場合に、guard句内の処理が実行されます。
こうすることで、ソースコード上でこのメソッドにはどのような値が必要なのか、
どんな値が入ると処理できないのかを示すことができます。

nilをguard句で取り除く

guard let hoge = fuga else {
    return
}

fugaがnil許容型である場合、そのままでは値を使用することができません。
そのため、nilが入っていない変数であることを保証しなければなりません。
上記の記述方法でguard句を使用すると、fugaがnilだった場合はguard句内の処理が実行されます。

そうすることで、メソッド内でhogeを安全に使用することができます。

注意点

guard句はどこにでも記述できますが、
メソッドで使用する変数の初期化以外での使用は推奨されていません。

便利だからといって無闇に使用せず、if文とうまく使い分けることが大事です。

さいごに

guard句は奥が深く、私も全てを理解しているわけではありません。
Switch文で使用できたりもするようなので、これからも勉強を続けたいと思います。

何か間違いがあれば、ご指摘頂けると幸いです。

以上、guard句の使い方でした!!

9
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?