我在 Swift 中有一个如下所示的结构:
internal struct MapKey {
internal let id: String
internal let values: [String:String]
}
extension MapKey: Equatable {}
func ==(lhs: MapKey, rhs: MapKey) -> Bool {
return lhs.id == rhs.id && lhs.values == rhs.values
}
我现在需要使用 MapKey 作为 Swift 字典中的键,这需要 MapKey 符合 Hashable 协议。
对于像这样的结构,Hashable 的正确实现是什么?
extension MapKey: Hashable {
var hashValue: Int {
return ??? // values does not have a hash function/property.
}
}
我一直在做一些研究,但未能确定散列字典的正确方法是什么,因为我需要能够为values属性本身生成散列值。任何帮助深表感谢。