Swift编程:从基础到面向对象应用开发
1. 闭包与函数
闭包和函数类似,都可以接收参数。在之前的例子中,闭包会指定其使用的参数的名称和类型。不过,你不必如此详细,编译器可以像推断变量类型一样,为你推断参数的类型。例如下面这个闭包,参数就没有指定类型:
var numbersSortedReverse = numbers.sorted(by: {n1, n2 in return n1 > n2})
// = [120, 56, 32, 13, 2, 1]
如果你不太在意参数的名称,还可以让闭包更加简洁。省略参数名称后,你可以通过编号来引用每个参数(第一个参数是 $0 ,第二个是 $1 ,依此类推)。此外,如果闭包只包含一行代码,还可以省略 return 关键字:
var numbersSortedAgain = numbers.sorted(by: {
$1 > $0
}) // = [1, 2, 13, 32, 56, 120]
如果闭包是函数调用的最后一个参数,你可以将其放在括号外面,这只是为了提高可读性,不会改变闭包的工作方式:
var numbersSortedReversedAgain = numbers.sorted {
$0 > $1
} // = [120, 56, 3
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



