在某些情况和某些代码中,我看到 hashValue
用于将 Bool
转换为 Int
。
然而,代码
let someValue = true
let someOtherValue = false
print(someValue.hashValue)
print(someOtherValue.hashValue)
给我输出
-5519895559129191040
7814522403520016984
不过,我希望
1
和 0
。我使用 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/