闭包表达式和函数的比较
定义一个普通的函数:
func sum(_ v1: Int, _ v2: Int) -> Int { v2 + v2 }
let result = sum(10, 20)...闭包表达式的简写
定义函数:
func exec(v1: Int, v2: Int, fn: (Int, Int) -> Int) {
print(fn(v1, v2))
}
要想使用exec...fn(1)后:
第五步:执行fn(2)后:
结论: 内部函数一旦捕获了外部的局部变量,要想持续使用这个变量,就需要延迟变量的生命周期,所以在堆空间分配一块内存来存放局部变量的值。...五、应用
通过数组的排序看下闭包表达式是如何使用的。
定义函数:
var arr = [20, 52, 19, 3, 80, 72]
3.1....自定义排序
sort()是升序的,如果要降序呢?我们可以使用另外一个函数进行自定义排序。