的語法是:
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
我想學習閉包,並用閉包 –