swift2中的排序函数
我对数组进行排序,如下所示:swift2中的排序函数,swift2,ios9,xcode7,Swift2,Ios9,Xcode7,我对数组进行排序,如下所示: var users = ["John", "Matt", "Mary", "Dani", "Steve"] func back (s1:String, s2:String) -> Bool { return s1 > s2 } sorted(users, back) 但我得到了这个错误 “sorted”不可用:对集合调用“sort()”方法 在这里使用sort()方法的正确方法应该是什么?按照错误消息告诉您的,并调用集合上的sort: us
var users = ["John", "Matt", "Mary", "Dani", "Steve"]
func back (s1:String, s2:String) -> Bool
{
return s1 > s2
}
sorted(users, back)
但我得到了这个错误
“sorted”不可用:对集合调用“sort()”方法
在这里使用sort()方法的正确方法应该是什么?按照错误消息告诉您的,并调用集合上的
sort
:
users.sort(back)
请注意,在Swift 2中,sorted
现在是sort
,旧的sort
现在是sortInPlace
,这两个函数都将在数组本身上调用(它们以前是全局函数)
小心,这在Swift 3中再次发生了变化,其中
sort
是变异方法,sorted
是返回新数组的方法。另一种方法是以简单的方式使用闭包:
users.sort({a, b in a > b})
使用闭包的另一种方法是:
var numbers = [2,4,34,6,33,1,67,20]
var numbersSorted = numbers.sort( { (first, second ) -> Bool in
return first < second
})
var数=[2,4,34,6,33,1,67,20]
var numbersorted=numbers.sort({(第一,第二)->Bool-in
返回第一个<第二个
})
在swift 2.2中,有多种方法可以使用具有排序功能的闭包,如下所示
以数组为例
var names:[String] = ["aaa", "ddd", "rrr", "bbb"];
使用swift闭包对数组进行排序的不同选项如下所示
选项1
// In line with default closure format.
names = names.sort( { (s1: String, s2: String) -> Bool in return s1 < s2 })
print(names)
选项3
// Omitted args types and return keyword as well
names = names.sort( { s1, s2 in s1 < s2 } )
print(names)
Swift 2.3
let sortedArray = array.sort()
let sortedArray = array.sorted()
Swift 3.0
let sortedArray = array.sort()
let sortedArray = array.sorted()
这会产生类似于-[1,10100,2,20200]的值,但我希望得到类似于-[1,2,10,20100]的值
let sortedArray = array.sort()
let sortedArray = array.sorted()