Swift-内联闭包速记参数($0, $1)

以数组中的排序方法为例,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会自动为内联闭包提供速记参数名称,可使$+数字来引用闭包参数对应的值。
参考原文

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。