闭包

闭包:把函数用作类型

闭包形式1:作为函数返回值

1 func bibao() ->((Int) ->Int) {
2     var x = 10
3     func returnbibao(integer:Int) ->Int {
4         return x + integer
5     }
6     return returnbibao
7 }
8 var funcVar = bibao()
9 print(funcVar(7))
View Code

 第一行代码中:(Int)这里是3.0的语法(即Int加括号),表示作为函数返回值的闭包函数的形参(就是函数形参);然后整个函数中返回returnbibao与(Int) ->Int组合成为函数签名(函数头部)。

闭包形式2:作为函数形参类型

 1 func bibao(canShuBiBao:() ->Bool) ->Bool {
 2     if canShuBiBao() {
 3         return true
 4     }
 5     return false
 6 }
 7 func CanShuBiBao() ->Bool {
 8     return true//改变这个值,输出变化
 9 }
10 print(bibao(canShuBiBao:CanShuBiBao))
View Code

 第二个函数作为闭包函数,用作形参类型;第一个函数调用时,必须带上——形参名:形参类型。

此外,{}将创建一个匿名闭包。如:{return $0+$1}("hello","world")

数组的各种方法:for _ in arrays where 条件、filter、map、reduce。

原文地址:https://www.cnblogs.com/quanxi/p/5904810.html