gpt4 book ai didi

swift - 如何使用 SwiftUI 中的扩展将 Hashable 协议(protocol)添加到 CLLocationCoordinate2D

转载 作者:行者123 更新时间:2023-12-05 08:37:13 33 4
gpt4 key购买 nike

所以我有一个自定义结构,其中一个属性为 String 类型,另一个属性为 CLLocationCoordinate2D 类型。显然,String 符合 Hashable,如果我可以扩展 CLLocationCoordinate2D 以符合 Hashable,我的自定义结构也将是 Hashable。这是我扩展 CLLocationCoordinate2D 的尝试:

extension CLLocationCoordinate2D {
static func == (lhs: Self, rhs: Self) -> Bool {
return lhs.latitude == rhs.latitude && lhs.longitude == rhs.longitude
}

func hash(into hasher: inout Hasher) {
hasher.combine(self.latitude) //wasn't entirely sure what to put for the combine parameter but I saw similar things online
}
}

最佳答案

您需要显式声明Hashable:

extension CLLocationCoordinate2D: Hashable {
public static func == (lhs: Self, rhs: Self) -> Bool {
return lhs.latitude == rhs.latitude && lhs.longitude == rhs.longitude
}

public func hash(into hasher: inout Hasher) {
hasher.combine(latitude)
hasher.combine(longitude)
}
}

关于swift - 如何使用 SwiftUI 中的扩展将 Hashable 协议(protocol)添加到 CLLocationCoordinate2D,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66285943/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com