Swift   发布时间:2022-04-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift 4 Conform Comparable协议和排序方法问题大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我编写符合协议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方法,它给我输出如下:

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

解决方法

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

records.sort(by: >)

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

大佬总结

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

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。