let unsortedArray = [98,23,643,678,2,568,1,234,556,4] {
(first:Int , second:Int) -> Bool in
if first < second {
return true
} else{
return false
}
}
上面的代码是使用Swift 2和Xcode 7.3对未排序的数组进行排序。
我想知道如何打印结果?
答案 0 :(得分:1)
语法为:
let unsortedArray = [98, 23, 643, 678, 2, 568, 1, 234, 556, 4]
let sortedArray = unsortedArray.sort() { (first: Int, second: Int) -> Bool in
if first < second {
return true
} else {
return false
}
}
print("\(sortedArray)")
注意,在Swift 2.3中sort
,但在Swift 3中,现在称为sorted
。
顺便说一句,这可以简化:
let sortedArray = unsortedArray.sort { (first: Int, second: Int) -> Bool in
return first < second
}
或者,进一步简化为使用匿名闭包参数:
let sortedArray = unsortedArray.sort {
return $0 < $1
}
因为闭包内部有一个表达式,所以你可以进一步简单地说:
let sortedArray = unsortedArray.sort { $0 < $1 }
或者,进一步简化为:
let sortedArray = unsortedArray.sort(<)
或者,因为数组的元素Int
类型符合Comparable
,所以可以完全省略闭包并使用不带参数的不同sort
方法:
let sortedArray = unsortedArray.sort()
注意,这要求数组的元素具有:
中定义的小于运算符(
中的元素func <
)Comparable
一致性是一个 strict weak ordering 在self
。