[Swift] ガード処理

Swiftでプログラムを書いていると、nilを返す可能性のあるAPIがかなり多いのですが、nilの場合のガード処理を書く場合は、guardキーワードを使うことができます。

1
2
3
4
5
guard let content = try? Data(contentsOf: URL(fileURLWithPath: webStorageDataPath!)) else {
    return
}
 
// contentを使った処理を記載する

ガード処理を書く時には有効です。
初見で何をやっているのかわかりにくい点が難点です。

辞書から値を取得して、nilだったら初期値を設定したい場合は、以下のようにかけます。

1
2
// 辞書から取得した値がnilなら空文字を設定する
let userId = someDictionary["user_id"] as? String ?? ""

型の制約が強いので値のチェックを厳にしないといけません。
面倒でも、!とかはあまり使わないようにしたいものです。

0 件のコメント :

コメントを投稿