这个问题在swift开发中经常遇到,我刚刚开始学习swift,在初始化Dictionary时遇到了这个错误。
let RNG : Dictionary<Any,Any> = Dictionary.init()
这句代码显示,我声明了这个字典的key属于Any类型,也就是说是什么类型都可以,但这很明显是不被允许把 key定义成Any。
从字面意思来看 Any不满足 hashable 的要求 这是与集合的存储原理相关。
这里说明一下
Hashable 哈希
集合作为存储工具,所要存储的值必须是可以被哈希化的值,在swfit的类型中,String和基本数据类型(Int 、Double、Bool)都是可以被哈希化的,可以作为集合的值或字典的key值。但并不是所有的类型都可以。
因此,对于这个问题,我们必须指定 key的具体类型