在Swift中,为什么'case'条件匹配没有关联数据的枚举情况......?

时间:2016-12-10 23:04:46

标签: swift enums conditional case

序言:我理解我的问题的实际解决方法是使用完整的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 '_'

有没有办法测试枚举案例 - 没有关联数据,来自枚举,其他案例确实有相关数据 - 在一行条件下,如ifguard

是的,switch声明将完成工作。这更像是一个理论问题,而不是一个实际问题。

P.S。向物理学家道歉,我发现这些例子不是真正夸克的标准(哈!)模型。

(编辑以突出关键点)

0 个答案:

没有答案