以数组中的排序方法为例,sorted可以传入一个闭包作为参数,限制为2个入参(Element)。
sorted.png
常规排序
let names = ["Chris", "Alex", "Ewa", "Barry", "Daniella"]
var reversedNames = names.sorted(by: { (s1: String, s2: String) -> Bool in
return s1 > s2
})
print("names :"+"\(reversedNames)")
闭包的入参s1,s2 返回s1 > s2
使用$符号排序
reversedNames = names.sorted(by: {$0>$1})
原因
Swift的语法糖。Swift会自动为内联闭包提供速记参数名称,可使$+数字来引用闭包参数对应的值。
参考原文
网友评论