Я пишу следующие структуры, которые соответствуют протоколу Comparable.
struct Record: Comparable {
static func < (lhs: Record, rhs: Record) -> Bool {
if lhs.wins == rhs.wins {
return lhs.losses > rhs.losses
}
return lhs.wins < rhs.wins
}
var wins: Int
var losses: Int
init(wins: Int, losses: Int) {
self.wins = wins
self.losses = losses
}
}
var a1 = Record(wins: 3, losses: 8)
var b1 = Record(wins: 3, losses: 9)
var c1 = Record(wins: 4, losses: 7)
var records = [a1, b1, c1]
records.reverse()
print(records)
Все отлично работает, используя> <== и сортировку тоже.но если я переверну метод сортировки массива записей, он выдаст мне следующий вывод: </p>
[__lldb_expr_48.Record (побед: 4, потерь: 7), __lldb_expr_48.Record (побед: 3, потери: 9), __lldb_expr_48.Record (выигрыши: 3, проигрыши: 8)]
Сначала выигрывают самые высокие выигрыши, за которыми следуют меньшие выигрыши, но если выигрыши равны, тогда меньшие потери должны наступать до больших потерь.Я здесь что-то делаю не так или что-то не так?Я все еще учусь быстро, поэтому возможно.