注意我已经阅读了这篇文章,但是那篇文章使用的是switch语句,当模式匹配时应该执行某些操作(返回true)。相反,如果模式匹配,我不想做任何操作并使用if-case语句。
我有这个枚举:
我有这个枚举:
enum MyEnum {
case a
case b(Int)
case c
case d
}
这是一个实例:
let myEnum: MyEnum = .a
现在如果myEnum
不等于.b
,我想要做一些事情。由于.b
有一个关联值,我不能简单地使用if语句检查:
if myEnum != .b { // compiler error
// do my thing here
}
所以我必须使用 if-case 语句来进行模式匹配:
if case .b(_) = myEnum {
} else {
// do my thing here
}
但是我真的很讨厌使用空if子句。这对我来说看起来不够Swifty。我尝试天真地做到这一点:
if case .b(_) != myEnum { // compiler error!
// do my thing here
}
除了使用空的 if 子句,还有更好的方法吗?
我仍然有应该运行的代码,无论模式是否匹配,所以 guard 语句不起作用。
(_)
。 - Hamish