看起来像Swift中的Enumerations不能进行相等的比较。下面是代码我预期的那样工作:如何比较相同枚举的值? (==比较不起作用!)
let areEqual = MyEnum.SomeEnumValue == MyEnum.SomeEnumValue
然而,这并不编译,并抛出错误:Cannot invoke '==' with an argument list of type '(MyEnum, MyEnum)'
。
是否可以使用==
运算符来比较2个枚举值,还是我真的为此编写了switch-case?
EDIT
下面是一个包含自例子。刚过它去操场,你应该看到编译错误。
import UIKit
enum MyEnum {
case SomeValue(Int)
case OtherValue(Double)
case ThirdValue
}
let areEqual = MyEnum.ThirdValue == MyEnum.ThirdValue
看起来有点像雨燕的错误,因为它可以让你比较不具有关联值不抱怨枚举。所以我希望这不是预期的行为(允许比较一些列举而不是其他列举)。
我无法重现该问题。你能展示一个(最小的)完整的,独立的例子(包括枚举定义)吗?另外,如果您想比较枚举常量或变量的值,则不清楚(对我而言)。 – 2014-10-04 19:55:02
你可以发布你的完整代码吗? – 2014-10-04 19:55:40
@Martin R正在工作。一会儿。 – drasto 2014-10-04 19:56:44