enum Suit: String {
case spades = "?"
case hearts = "?"
case diamonds = "?"
case clubs = "?"
}
Run Code Online (Sandbox Code Playgroud)
例如,我该怎么做:
for suit in Suit {
// do something with suit
print(suit.rawValue)
}
Run Code Online (Sandbox Code Playgroud)
结果示例:
?
?
?
?
Run Code Online (Sandbox Code Playgroud) 我想测试两个Swift枚举值的相等性.例如:
enum SimpleToken {
case Name(String)
case Number(Int)
}
let t1 = SimpleToken.Number(123)
let t2 = SimpleToken.Number(123)
XCTAssert(t1 == t2)
Run Code Online (Sandbox Code Playgroud)
但是,编译器不会编译相等表达式:
error: could not find an overload for '==' that accepts the supplied arguments
XCTAssert(t1 == t2)
^~~~~~~~~~~~~~~~~~~
Run Code Online (Sandbox Code Playgroud)
我是否已经定义了我自己的等于运算符的重载?我希望Swift编译器能够自动处理它,就像Scala和Ocaml一样.