読者です 読者をやめる 読者になる 読者になる

面白きことは良きことなり

拙く未熟なiOSエンジニアの備忘録と戯言

guard let で2つ以上の変数をまとめて処理する

Swift2からoptional型をunwrapを保証しつつnilでないことを確認するためにguard let構文が用意されるようになった。
非常に便利なので積極的に使われるけど、括弧やreturnが必要なのでいくつもguard letを使おうとするとかさばるとおもっていた。

しかし、実はguard let構文はまとめて書けることを知ったのでメモしておく。

// 1つだけunwrapとnilチェックする
guard let hoge = hoge else {
    return
}
// 2つ以上unwrapとnilチェックする場合は","区切りにする
// 先にunwrapしたものは、2つ目以降で使用可能
guard let view = sender as? UIView, tag = view.tag else {
    return
}

ちなみに、unwrapしたものを同じguard let構文内で使用していたらコンパイラーがクラッシュすることがあったので、ここら辺はまだ不安定なのかもしれない。