语言: 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
}
有什么想法吗?我并没有在这段代码中做任何事情,我只是在想为什么我们不能进行比较。
case
关键字。 - Zonily Jame