【发布时间】:2019-06-03 09:51:01
【问题描述】:
我正在尝试使我的通用 CustomSet 符合 Equatable,但是当我尝试在 Equatable func 中对列表数组进行排序时出现以下错误:
对成员'
我认为问题在于编译器在比较排序时没有关于值类型的信息,但我不确定如何告诉它它需要什么。这甚至可以对泛型类型进行吗?
如果list 包含完全相同的值,则目标是说CustomSet 等于。
struct CustomSet<T : Equatable> {
var list: [T]
init(_ list: [T]){
self.list = list
}
}
extension CustomSet : Equatable {
static func == (lhs: CustomSet, rhs: CustomSet) -> Bool {
return lhs.list.count == rhs.list.count && lhs.list.sorted(by: <) == rhs.list.sorted(by: <)
}
}
【问题讨论】: