序言:我理解我的问题的实际解决方法是使用完整的switch
语句。我主要是想看看我是否在这里误解了斯威夫特。
给定enum
,例如:
enum Quark1 {
case charm
case strange
// ...
}
如下所示的guard
语句,这就是我喜欢我正在编写的代码,工作正常:
guard someQuark != .charm else { // ... }
然而,如果我的枚举中的一个(或更多,但并非所有)个案都有相关数据,请执行以下操作:
enum Quark2 {
case charm
case strange(charge)
// ...
}
然后是相同的“警卫案”陈述......
guard someQuark != .charm else { // no bueno
...收到此错误消息:
Binary operator '!=' cannot be applied to operands of type 'Quark' and '_'
有没有办法测试枚举案例 - 没有关联数据,来自枚举,其他案例确实有相关数据 - 在一行条件下,如if
和guard
?
是的,switch
声明将完成工作。这更像是一个理论问题,而不是一个实际问题。
P.S。向物理学家道歉,我发现这些例子不是真正夸克的标准(哈!)模型。
(编辑以突出关键点)