在下面的代码中,我得到一个错误 [String : Double] does not conform to Hashable
。我该如何解决这个问题?
我看到了不符合 Hashable 协议(protocol)的问题,但我想知道为什么会这样,其他方式有效。是否只需要字典中的'Key'来确认Hashable?一些解释会有所帮助
enum someEnumType {
case First(String, (Int, Int)->Int)
case Second (String, Int)
}
// var operations = [someEnumType : [String : Double]](); <--- This syntax Works
var operations = [[String : Double] : someEnumType ](); <--- But this does not work, ideally - i want this.
最佳答案
字典也叫†哈希表;他们通过散列 key 来工作。所以,是的,它确实需要 Hashable
。该值不是因为重点是按键查找值。
† 嗯,严格来说,可以在不使用哈希的情况下实现字典,但在实践中,编程语言中称为字典的数据结构通常被理解为 HashMap 。在 Swift 中,Dictionary
文档也将其指定为“基于散列的映射”。
关于swift - 在 Swift 中定义嵌套字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31822813/