说我们有一个枚举:
enum MyEnum {
case foo(Int)
case bar
}
我们可以这样做:
func myFunc(_ foo: MyEnum, _ bar: MyEnum) {
if case .foo(_) = foo, case .bar = bar {...}
}
但如果我需要这样的话
if case .foo(_) = foo, case .bar = bar OR someVar == true {...}
我希望case .foo(_) = foo, case .bar = bar
为真,或someVar
为真。
显然我不能把||
放在那里,我无法找到替代方案。我错过了一些简单的东西吗?
答案 0 :(得分:2)
我不确定使用单个if语句是否可行。但是,您可以使用如下的switch语句:
enum MyEnum {
case foo(Int)
case bar
}
func myFunc(_ foo: MyEnum, _ bar: MyEnum, _ someVar: Bool) {
switch (foo, bar, someVar) {
case (.foo, .bar, _), (_, _, true):
break
default:
break
}
}