Language: Swift2.3
For example let's I'll show you different kinds of enums
enum Normal {
case one
case two, three
}
enum NormalRaw: Int {
case one
case two, three
}
enum NormalArg {
case one(Int)
case two, three
}
Switch
can be used on all three enums like so:
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
}
On the if-else statement though I can only do comparison for Normal
and NormalRaw
, and an error message shows for NormalArg
, so I can't run the code
Binary Operator '==' cannot be applied to operands of type
NormalArg
and_
Here's the code example:
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
}
Any Ideas? I'm not really doing anything with this code, I'm just wondering as to why we can't do comparison.