Swift 標(biāo)準(zhǔn)庫提供了名為 sorted(by:) 的方法蒂秘,它會(huì)根據(jù)你所提供的用于排序的閉包函數(shù)將已知類型數(shù)組中的值進(jìn)行排序衰齐。一旦排序完成悟泵,sorted(by:) 方法會(huì)返回一個(gè)與原數(shù)組大小相同勾邦,包含同類型元素且元素已正確排序的新數(shù)組刻蟹。原數(shù)組不會(huì)被 sorted(by:) 方法修改蒋腮。
sorted(by:) 方法接受一個(gè)閉包淘捡,該閉包函數(shù)需要傳入與數(shù)組元素類型相同的兩個(gè)值,并返回一個(gè)布爾類型值來表明當(dāng)排序結(jié)束后傳入的第一個(gè)參數(shù)排在第二個(gè)參數(shù)前面還是后面池摧。如果第一個(gè)參數(shù)值出現(xiàn)在第二個(gè)參數(shù)值前面焦除,排序閉包函數(shù)需要返回true,反之返回false作彤。
let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]
func backward(_ s1: String, _ s2: String) -> Bool {
return s1 > s2
}
var reversedNames = names.sorted(by: backward)
// reversedNames 為 ["Ewa", "Daniella", "Chris", "Barry", "Alex"]