サンプルコード:変数がいくつかの列挙型の値と等しいかどうかテストするためのすてきな方法はありますか?
enum myEnum {
case foo, bar, baz
}
var myVar:myEnum = .foo
if myVar == .foo || myVar == .bar {
}
simplierがあった場合、私は思っていたが(ここでIは、他の条件とチェーンに必要)スイッチなし条件場合を書くことでしたか?
サンプルコード:変数がいくつかの列挙型の値と等しいかどうかテストするためのすてきな方法はありますか?
enum myEnum {
case foo, bar, baz
}
var myVar:myEnum = .foo
if myVar == .foo || myVar == .bar {
}
simplierがあった場合、私は思っていたが(ここでIは、他の条件とチェーンに必要)スイッチなし条件場合を書くことでしたか?
あなたの目標は簡潔コードや読みやすさであり、あなたはあなたがすることができます微調整のための潜在的な効率の問題/将来の範囲を懸念していない場合は、次の
if [ .foo, .bar ].contains(myVar) {
あなたに例がたくさんある場合は、contains
を使用することができます
enum MyEnum {
case Foo, Bar, Baz, Qux // and many more
func isAmong(conditions: [MyEnum]) -> Bool {
return conditions.contains(self)
}
}
使用法::と比較
if myVar.isAmong([.Foo, .Bar]) {
// ok
}
ニース、型推論はまたで働きますそうですね。 –