我想比较一个枚举值与一个枚举类型,但不使用 switch 语句。例如,以下代码可以使用 ~= 运算符完成:
有没有办法绕过这个错误,使用
enum MyEnum {
case A, B
}
let myEnum = MyEnum.A
let isA = myEnum ~= MyEnum.A
isA
等于true
。
然而,当我尝试比较一个带有相关值的枚举类型的枚举时(如下所示),我会得到编译错误二进制运算符'~='不能应用于两个MyEnum操作数
。
enum MyEnum {
case A, B(object: Any)
}
let myEnum = MyEnum.A
let isA = myEnum ~= MyEnum.A
有没有办法绕过这个错误,使用
~=
模式匹配运算符?或者我的唯一选择是以下语法,我认为它更加繁琐:enum MyEnum {
case A, B(object: Any)
}
let myEnum = MyEnum.A
let isA: Bool
switch myEnum {
case .A:
isA = true
default:
isA = false
}
感谢您提供的意见和建议!