我最近遇到了这段代码来生成枚举。我真的无法理解这一点。
enum Alphabet: String {
case A
case B
case C
}
var i = 1
let alphabet = withUnsafePointer(to: &i) { (pt) -> Alphabet in
UnsafeRawPointer(pt).load(as: Alphabet.self)
}
print(alphabet) // B
结果:
i = 0 -> alphabet = A
i = 1 -> alphabet = B
i = 2 -> alphabet = C
您如何解释?
我读过某处swift为枚举值提供了hashValue
方法,该方法返回枚举内的值的索引。虽然我不确定这是否已记录。