こんにちは、おーしまです。
今回は、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で、処理をやめることができます。
今回はここまでです。
それでは、また。