我正在尝试“布尔值”或“后卫案例”语句,但不确定语法是否正确。
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
}
答案 0 :(得分:2)
由于您没有使用任何复杂的模式匹配,因此无需使用guard case
,您只需测试是否相等即可。
您可以简单地将所有enum
的情况放入数组中,并在其上调用contains
。
guard [FooBar.foo, FooBar.bar].contains(test) else {
return
}
答案 1 :(得分:1)
您可以改用它:
guard [FooBar.foo, FooBar.bar].contains(test) else {
return
}
答案 2 :(得分:1)
您可以使用contains
:
guard [FooBar.foo, FooBar.bar].contains(test) else { return }
答案 3 :(得分:1)
您不需要case
关键字。只是检查枚举是否等于给定情况
guard test == .foo || test == .bar else {
return
}