我目前在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中排序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)