Swift编程:从基础到面向对象应用开发
1. 闭包与关键字
1.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,
超级会员免费看
订阅专栏 解锁全文
1065

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



