Type 'Any' does not conform to protocol 'Hashable'

    xiaoxiao2022-07-12  143

    这个问题在swift开发中经常遇到,我刚刚开始学习swift,在初始化Dictionary时遇到了这个错误。

    let RNG : Dictionary<Any,Any> = Dictionary.init()

    这句代码显示,我声明了这个字典的key属于Any类型,也就是说是什么类型都可以,但这很明显是不被允许把 key定义成Any。 从字面意思来看 Any不满足 hashable 的要求 这是与集合的存储原理相关。

    这里说明一下 Hashable 哈希 集合作为存储工具,所要存储的值必须是可以被哈希化的值,在swfit的类型中,String和基本数据类型(Int 、Double、Bool)都是可以被哈希化的,可以作为集合的值或字典的key值。但并不是所有的类型都可以。

    因此,对于这个问题,我们必须指定 key的具体类型

    最新回复(0)