Swift学习笔记(五) -- 闭包

通过学习Swift 4.0,总结一下Swift相对于Objective-C的一些新特征。

闭包

  • 闭包是一种函数的简写形式,省去函数名,把参数和返回值放入花括号内。
  • 使用函数,对数组排序(代码頽长)
    1
    2
    3
    4
    5
    6
    7
    var city = ["Beijing","Shanghai","Guangzhou"]

    func daoxu(a:String ,b:String) ->Bool
    {
    return a > b
    }
    var city2 = city.sorted(by: daoxu)
  • 使用闭包,对数组排序(代码简洁)

方式一:

1
2
3
city2 = city.sorted(by: {(a, b) -> Bool in
return a > b
})

方式二:

1
2
3
4
5
6
7
city2 = city.sorted(by: {(a, b) in
a > b
})

Tips:(相对于方式一)
- 参数名类型、返回值类型,系统会自动推断,可省略不写
- 如果闭包表达式代码只有1行,return关键字,可省略不写

方式三:

1
2
3
4
city2 = city.sorted(by: {$0 > $1})

Tips:
- 使用快捷参数,前缀$,从0开始递增