的语法是:
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)")
注意,在雨燕2.3这是sort
,但是在斯威夫特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()
注意,这需要所述阵列的所述元件具有:
的less-比在 中定义的运算符(func <
)Comparable
一致性是 strict weak ordering 优先于self
中的元素。
来源
2016-12-31 21:27:39
Rob
我想学习闭包,并用闭包 –