Language : Swift2.3
例如,我将向您展示不同种类的枚举
enum Normal {
case one
case two, three
}
enum NormalRaw: Int {
case one
case two, three
}
enum NormalArg {
case one(Int)
case two, three
}
Switch
可以像下面这样用于所有三个枚举:
var normal: Normal = .one
var normalRaw: NormalRaw = .one
var normalArg: NormalArg = .one(1)
switch normal {
case .one: print("1")
default: break
}
switch normalRaw {
case .one: print(normalRaw.rawValue)
default: break
}
switch normalArg {
case .one(let value): print(value)
default: break
}
在 if-else 语句上,虽然我只能对 Normal
和 NormalRaw
进行比较,而且对于 NormalArg
会显示一条错误消息,所以我不能运行代码
二进制运算符’= =’不能应用于
NormalArg
类型的操作数 和_
下面是代码示例:
if normal == .two { // no issue
.. do something
}
if normalRaw == .two { // no issue
.. do something
}
if normalArg == .two { // error here (the above message)
.. do something
}
if normalArg == .one(_) { // error here (the above message)
.. do something
}
if normalArg == .three { // error here (the above message)
.. do something
}
有什么想法吗? 我并没有真正做什么,这个代码,我只是想知道,为什么我们不能做比较。