相关疑难解决方法(0)

如何枚举String类型的枚举?

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)

string enums enumerate swift

510
推荐指数
17
解决办法
22万
查看次数

如何测试Swift枚举与相关值的相等性

我想测试两个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一样.

swift

174
推荐指数
8
解决办法
7万
查看次数

标签 统计

swift ×2

enumerate ×1

enums ×1

string ×1