Swift - 36 - 结尾闭包(Trailing closure)和捕获数值(Capturing Values)的简单介绍
//: Playground - noun: a place where people can play import UIKit // 初始化一个整数数组 var arr = [1, 3, 5, 7, 8, 10, 12, 2, 0, 11, 9] // 闭包原始模样 arr.sort(){(a: Int, b: Int) -> Bool in return a > b } // Trailing closure // 结尾闭包:就是将闭包这个参数写在函数括号的外面, 阅读起来感觉好一些.. // 不过有一个前提, 就是闭包必须是最后一个参数 // 感觉更像是在写一个函数 arr.sort() {(a: Int, b: Int) -> Bool in return a > b } // Capturing Values // 闭包内如果用到的变量不是在闭包中所定义的, 闭包会自动向外面一层寻找 // 在swift中使用这个特性不会引发内存相关的问题 var number = 5 arr.sort() { return fabs(Float($0 - number)) < fabs(Float($1 - number)) }