看起來像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