Swift 4 Conform Comparable协议和排序方法问题

Swift 4 Conform Comparable协议和排序方法问题,第1张

概述我编写符合协议Comparable的以下Struct. struct Record: Comparable { static func < (lhs: Record, rhs: Record) -> Bool { if lhs.wins == rhs.wins { return lhs.losses > rhs.losses } 我编写符合协议Comparable的以下Struct.

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)

使用>一切正常< ==并排序.但如果我在记录数组上反转sort方法,它给我输出如下:

[__lldb_expr_48.Record(wins: 4,losses: 7),__lldb_expr_48.Record(wins: 3,losses: 9),losses: 8)]

应该先取得最高胜利,然后取得较少的胜利,但如果胜利相等,那么在损失增加之前应该减少损失.我在这里做错了什么或遗漏了什么?我仍然学得很快,所以可能.

解决方法 要按反向排序顺序排序一系列东西,您可以按>排序:

records.sort(by: >)

反向将只是反转数组,而不进行排序.

总结

以上是内存溢出为你收集整理的Swift 4 Conform Comparable协议和排序方法问题全部内容,希望文章能够帮你解决Swift 4 Conform Comparable协议和排序方法问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存