Swift中$0、$1的实际含义

swift自动为闭包提供参数名缩写功能,可以直接通过$0和$1等来表示闭包中的第一个第二个参数,

并且对应的参数类型会根据函数类型来进行判断。如下代码:

  • 不使用$0 $1这些来代替

  

let numbers = [1,2,5,4,3,6,8,7]
        sortNumbers = numbers.sorted(by: { (a, b) -> Bool in
            return a < b
        })
        print("numbers -" + "\(sortNumbers)")
  • 使用$0,$1
let numbers = [1,2,5,4,3,6,8,7]
 var sortNumbers = numbers.sorted(by: {$0 < $1})
 print("numbers -" + "\(sortNumbers)")

可以发现使用$0、$1的话,参数类型可以自动判断,并且in关键字也可以省略,也就是只用写函数体就可以了。

输出结果:

numbers -[1, 2, 3, 4, 5, 6, 7, 8]
numbers -[1, 2, 3, 4, 5, 6, 7, 8]

转:https://www.jianshu.com/p/b36a0f8108aa