我在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
}
我现在需要在Swift字典中使用MapKey作为键,这要求MapKey符合Hashable协议。
对于像这样的结构体,Hashable的正确实现是什么?
extension MapKey: Hashable {
var hashValue: Int {
return ??? // values does not have a hash function/property.
}
}
我一直在做研究,但是没有找到对字典进行哈希的正确方法,因为我需要能够为 values 属性本身生成哈希值。非常感谢任何帮助。