Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了数组 – 扩展数组以检查是否在Swift中排序?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我想扩展Array类,以便可以知道它是否被排序(升序)。我想添加一个名为isSorted的计算属性。我如何声明数组的元素是可比较的? 我目前在PLayground中的实现 extension Array { var isSorted: Bool { for i in 1..self.count { if self[i-1] > self[i] { return false
我想扩展Array类,以便可以知道它是否被排序(升序)。我想添加一个名为isSorted的计算属性我如何声明数组的元素是可比较的?

我目前在PLayground中的实现

extension Array {
  var isSorted: Bool {
    for i in 1..self.count {
      if self[i-1] > self[i] { return false }
    }
    return true
  }
}

// The way I want to get the computed property
[1,1,2,3,4,5,6,7,8].isSorted //= true
[2,8,8].isSorted //= false

错误找不到’>’的重载它接受提供的参数

当然,我仍然有一个错误因为Swift不知道如何比较元素。如何在Swift中实现此扩展?还是我在这里做错事?

免费功能的另一种解决方法是做Swift的内置Array.sort和Array.sorted方法,并且要求您将适当的比较器传递给该方法
extension Array {
    func isSorted(isorderedBefore: (T,T) -> Bool) -> Bool {
        for i in 1..<self.count {
            if !isorderedBefore(self[i-1],self[i]) {
                return false
            }
        }
        return true
    }
}

[1,3].isSorted(<) // false
[1,10].isSorted(<) // true
[3.5,2.1,-5.4].isSorted(>) // true

大佬总结

以上是大佬教程为你收集整理的数组 – 扩展数组以检查是否在Swift中排序?全部内容,希望文章能够帮你解决数组 – 扩展数组以检查是否在Swift中排序?所遇到的程序开发问题。

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

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