Swift 检查是否有任何符合Hashable并获取hash值

Swift 检查是否有任何符合Hashable并获取hash值,swift,hashable,Swift,Hashable,我想获取符合Hashable的任何对象的散列值 但是,使用此代码: let anyValue:Any //... 如果设h=anyValue as?散列{ 返回h.hashValue } 我犯了这个错误 协议“Hashable”只能用作一般约束,因为它具有自身或关联的类型要求 您需要使用AnyHashable而不是Hashable,后者是为解决遇到的特定错误而创建的Hashable协议的类型擦除版本 if let h = anyValue as? AnyHashable { 这给了我一个错误

我想获取符合Hashable的
任何
对象的散列值

但是,使用此代码:

let anyValue:Any
//...
如果设h=anyValue as?散列{
返回h.hashValue
}
我犯了这个错误

协议“Hashable”只能用作一般约束,因为它具有自身或关联的类型要求


您需要使用
AnyHashable
而不是
Hashable
,后者是为解决遇到的特定错误而创建的
Hashable
协议的类型擦除版本

if let h = anyValue as? AnyHashable {

这给了我一个错误:
从'error'转换为不相关的类型'AnyHashable'总是失败
@BenLeggiero这是一个完全不同的问题。OP使用的是
Any
,而不是
Error
。请随意提出一个与您的问题不同但有点关联的新问题。谢谢!这实际上为我指出了一个解决方案:
(错误为任意)as?AnyHashable