在某些情况和某些代码中,我看到 hashValue 用于将 Bool 转换为 Int

然而,代码

let someValue = true
let someOtherValue = false

print(someValue.hashValue)
print(someOtherValue.hashValue)

给我输出
-5519895559129191040
7814522403520016984

不过,我希望 10

我使用 XCode 10.0 beta 2 (10L177m),MacOS High Sierra 和 Swift 4.2。我可以切换到 Swift 4.0 以获得同样的结果。

现在,是我做错了什么还是 hashValue 没有可靠的转换方法?

最佳答案

不, hashValue 不是将其他类型转换为 Int 的正确方法,特别是如果您想要特定结果。

来自 Hashable hashValue 的文档:



Bool 转换为 Int 的最简单解决方案是:

let someInt = someBool ? 1 : 0

关于swift - Bool.hashValue 是否有效转换为 Int?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52116428/

10-11 07:49