【note】Swift之闭包表达式的几种简化缩写形式

来源:互联网 发布:双11淘宝最迟发货时间 编辑:程序博客网 时间:2024/05/20 06:26

完整型:

rects.sort({ (first: Rectangle, second: Rectangle) -> Bool in     return first.width * first.length <= second.width * second.length})

闭包表达式的几种简化缩写形式:

  • 自动类型判断:省略参数类型和返回值类型
rects.sort({ first, second in    return first.width * first.length <= second.width * second.length})
  • 单表达式闭包可以省去return关键词(单表达式的意思是就是return语句只有一句话)——比较普遍
rects.sort({ first, second in    first.width * first.length <= second.width * second.length})
  • 使用参数缩略形式0,1…省略参数声明和in($0表示第一个参数,¥1表示第二个参数)——比较普遍
rects.sort({ $0.width * $0.length <= $1.width * $1.length})
  • 将操作符函数自动推导为函数类型——用的不多
rects.sort( <= )
  • 尾随闭包:当闭包表达式为函数最后一个参数,可将其写在括号后(为了代码的干净整洁)——比较常见
rects.sort{  first, second in  first.width * first.length <= second.width * second.length}
  • 自动闭包:不接受任何参数,直接返回表达式的值。允许延迟计算。
    • 允许延迟计算的意思是本来filter是会立即计算的,这样可以延迟计算,到之后才去执行filter()
var cities = ["Beijing", "Shanghai", "New York"]let filter = { cities.removeLast() } // filter的类型为无参数返回值为string的闭包的实例对象filter() // 这样表示执行了这个函数

0 0
原创粉丝点击