6、Swift编程:从基础到面向对象应用开发

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值