Я пытаюсь согласовать мой общий CustomSet
с Equatable, но я получаю следующую ошибку, когда пытаюсь отсортировать массив списка в функции Equatable:
Неоднозначная ссылка на члена '<' </p>
Мне кажется, проблема в том, что у компилятора нет информации о типах значений при сравнении в сортировке, но я не уверен, как сказать ему, что ему нужно. Это вообще возможно сделать на универсальных типах?
Цель состоит в том, чтобы сказать, что CustomSet
равно, если list
содержит точно такие же значения.
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: <)
}
}