我正在尝试'布尔值或'守卫案例语句,但我不确定正确的语法。
enum FooBar {
case foo
case bar
case nope
}
let test = FooBar.foo
guard case test = FooBar.foo else {
return
}
我也想测试反对bar
,但以下语法是不正确的:
guard case test = FooBar.foo || case test = FooBar.bar else {
return
}
您不需要case
关键字。只需检查枚举是否等于给定的情况
guard test == .foo || test == .bar else {
return
}
您可以改用:
guard [FooBar.foo, FooBar.bar].contains(test) else {
return
}
不需要使用guard case
,因为您不使用任何复杂的模式匹配,所以您只是在测试平等。
您可以简单地将所有enum
案例放入数组中,然后在此上调用contains
。
guard [FooBar.foo, FooBar.bar].contains(test) else {
return
}
您可以使用contains
:
guard [FooBar.foo, FooBar.bar].contains(test) else { return }