swift - 在 Swift 中定义嵌套字典

标签 swift dictionary

在下面的代码中,我得到一个错误 [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/

相关文章:

ios - 轻敲 UITextView 的事件(即 UITextView 失去焦点)

swift - 更新 Embed Swift 标准库设置

python - 通过键合并两个 Python 字典的值

javascript - 查找相邻节点

ios - 将 UIPanGestureRecognizer 中的 CGPoint 从 .began 分配到 .changed

ios - 如何以编程方式将自定义图像设置为 UIBarButtonItem

python - 将列表中的字典项添加到字典中

python - 使用字典时如何避免 KeyError?

Python-根据 2 个列表中的增量值添加到字典

ios - 如何将登录模块实现为我的 iOS 框架的一部分