おーしまブログ

プログラミングやってます

<swift> guardとは

こんにちは、おーしまです。

今回は、swiftの「guard」について書いていきます。


guardとは、条件分岐をする際に用いるメソッドです。
条件分岐で代表的な「if」と反対の効果を持っていて、ifは条件がtrueの場合に後続の処理を行いますが、guardはfalseの場合に後続の処理を行います。

使用例

func measureNum (num: Int) {

    guard num > 0 else {
        print("numは0より大きくない")
        return
    }

    print num
}

measureNum(1)

// 結果:1

numに1を代入し、num > 0が、trueとなったため、後続の処理は実行されず、print numが実行されました。
numに、0を代入していた場合、returnの処理を行うので、measureNumの処理を抜けることになります。



guardは、
「guard let」として、使用する場合もあります。
guard letは、letで変数を定義し、値を代入して、それを用いて条件式を立てることができます。
また、その定義した変数はguardのスコープ内なら使うことができます。

使用例

func measureNum () {

    let abc: Any = 1

    guard let num = abc as? Int else {
        print("abcはInt型じゃない")
        return
    }

    print("値はInt型の\(num)だ")
}

measureNum()

// 結果:値はInt型の1だ

このように、guardの外でも定義した変数(num)を使用することができます。



使用場面としては、これ以上処理を進めたくない場合に使用します。
nilが入っていたらエラーとして扱うケースだった場合などによく使います。

guard let a = b  else { return }

上の場合、bがnilならreturnで、処理をやめることができます。


今回はここまでです。
それでは、また。

ここはどこ おれはだれ それに近いものがあんだよ 始めようとした奴らも迷い始めてる 怖がらせないでよ そりゃ甘くはないけど まだまだ 夢見ていい世界なんでしょ {UVERwould「ハイ!問題作」}