Swiftのguard構文を使う

注意: この記事は1年以上前に掲載されたものです。情報が古い場合がありますのでお気を付け下さい。

SwiftのfatalErrorとはでほんの少しだけguard構文に触れていたが、しっかりとしたguard構文の説明を行なっていなかったので、今回はその説明をしたい。

guard構文は、その条件式がfalseの時に、異常系として処理を抜けるために使われる構文である。構文は以下の通りである。

guard 条件式 else {
    return / break / continue / throw / fatalError() / fatalError(_:) のいずれかを含む(breakはswitch-case文またはループ/continueはループのみ使用可能)
}

基本的にはif文医による実装での代替が可能であるが、多くの場合は以下の時に使われる。

  • Optional型の変数を安全にアンラップする時
  • Anyなどの汎用型の変数を安全に指定した型にキャストする時
  • 処理等を行った時のエラーチェックを行う時

例えば、Optional型の変数を安全にアンラップする場合は以下が考えられる。

guard let url = URL(string: "https://www.google.com") else {
    return
}
doSomething()
...

上記の場合は、URL型を初期化する時を想定しているが、URL型は通常はOptional型になるので、安全にアンラップする場合は上記のように行う。

他にも、guard構文の書き方のパターンはあるが、また後ほど説明したい。

タイトルとURLをコピーしました