Rob*_*ier 14
如果要将枚举值映射到整数,则应直接使用原始值.例如(来自Swift编程语言:枚举):
enum Planet: Int {
case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune
}
let possiblePlanet = Planet(rawValue: 7)
Run Code Online (Sandbox Code Playgroud)
我不相信有任何文档承诺枚举的hashValue特别是任何东西(如果你有链接,我会非常感兴趣).如果没有,您应明确指定原始值.
Ste*_*aul 10
enum Opponent: String {
case Player
case Computer
static func fromHashValue(hashValue: Int) -> Opponent {
if hashValue == 0 {
return .Player
} else {
return .Computer
}
}
Run Code Online (Sandbox Code Playgroud)
}
说明:
由于无法从hashValue中获取枚举值,因此必须手动执行.它不漂亮,但它的工作原理.您实际上创建了一个函数,允许您传入所需值的索引并手动将该枚举值返回给调用者.这可能会因为一个包含大量案例的枚举而变得令人讨厌,但它对我来说就像一个魅力.