if
ステートメントにいくつかのオプションのバインディングをカンマで区切って含めることができ、AND
のような振る舞いをすることができることは、Swift 3.1
のドキュメントに記載されています。オプションのバインディングのOR条件?
2つのオプションのプロパティがあり、どちらか(または両方)がnil
であるかどうかをチェックし、非nilをアンラップしてからコードブロックを実行したいとします。この使い方:
if let = property1, let = property2 {
// Some task to do with unwrapped property
}
は、両方の性質がアンラップされた場合if
文ブロック(AND
条件)を実行します。しかし、私にとっては、if
ステートメントブロック(OR
の条件)のコードを実行するためには、少なくとも1つのプロパティがNil以外であることが必要です。しかし、私がこれを好きなら:
if property1 != nil || property2 != nil {
// Some task to do with non-nil property
}
しかし、私は非nilプロパティのラップされていない値を持っていません。私はアンラップされた値をif
ステートメントブロックで利用可能にして、オプションの連鎖を避けるようにしたいと思います。
これを達成するためのベストプラクティスと最もコンパクトな方法はどちらですか?