【Swift入門】guardの意味や使用方法についてのまとめ

2020年12月8日

この記事の目次

guard

guardは条件に一致しなかったときに処理を中断する文法です。

予期していないことが起こったときに処理を中断する、と言い換えることもできます。

ifを使っても似たようなことができます。

しかし、guardを使った方が『予期しない処理が起こったときに処理を中断したい』といった意図が伝わりやすいのでコードの可読性が上がります。

guardは

guard 条件 else {    条件に一致しなかった時の処理        return}条件が一致した時の処理

と記述します。

実際にguardを使ってみましょう。

新しくPlaygroundを作って、空にしておいてください。

今回は酒を飲む関数を作って、その中でguardを使って20歳未満であれば処理を中断するようにしましょう。

わざわざ関数の中でguardを使う理由としては、関数かクロージャの中でなければreturnを記述できないためです。

クロージャではなく、関数を使った理由としては関数の方が個人的に書きやすいからです。

それではguardを使ってみましょう。

var age = 24

func Drink(){
    guard age >= 20 else {
        print(“酒が飲めない”)
        return
    }
    print(“酒を飲む”)
}

Drink()

と記述します。

コードについて説明していきましょう。

コードの大まかな内容としては、まずInt型の変数ageを作り、24を格納します。

次に内部でguardを使った関数『Drink』を作って、

関数『Drink』を使うという内容です。

関数『Drink』の中身を詳しく見ていきましょう。

まず、条件に一致していなければ、

elseが呼ばれて、

『酒が飲めない』とコンソールに出力され、

処理から抜けます。

条件に一致していれば

guardが呼ばれることはなく、guardの外側の処理が呼ばれます。

今回だと『酒を飲む』とコンソールに出力されますね。

今回は変数ageの値が『24』であり、条件に一致しているので、

guardが呼ばれることなく、guardの外側の処理である『print(“酒を飲む”)』が呼ばれ、

コンソールには『酒を飲む』と出力されるはずです。

実際に実行してみましょう。

実行ボタンを押してください。

予想通り『酒を飲む』とコンソールに出力されましたね。

次に変数ageの値を20以下である『13』にしてみましょう。

このように変更すると条件に一致しなくなるので

guardの処理である『print(“酒が飲めない”)』が呼び出された後に、

returnが呼ばれ、処理を抜けます。

実行するとコンソールには『酒が飲めない』と出力されるはずです。

実行してみましょう。

実行ボタンを押してください。

すると予想通り『酒が飲めない』と出力されますね。

guard, iOS, Swift

Posted by mogi0506