推荐答案
在 Swift 中,可以通过以下几种方式简化闭包表达式:
- 省略参数类型:如果闭包的参数类型可以通过上下文推断出来,可以省略参数类型。
- 省略返回类型:如果闭包的返回类型可以通过上下文推断出来,可以省略返回类型。
- 省略
return
关键字:如果闭包只有一行表达式,可以省略return
关键字。 - 使用简写参数名:可以使用
$0
,$1
,$2
等简写参数名来代替显式命名的参数。 - 尾随闭包:如果闭包是函数的最后一个参数,可以将闭包写在函数调用的括号外面。
本题详细解读
1. 省略参数类型
如果闭包的参数类型可以通过上下文推断出来,可以省略参数类型。例如:
let numbers = [1, 2, 3, 4, 5] let doubled = numbers.map { (number: Int) -> Int in return number * 2 }
可以简化为:
let doubled = numbers.map { number in return number * 2 }
2. 省略返回类型
如果闭包的返回类型可以通过上下文推断出来,可以省略返回类型。例如:
let doubled = numbers.map { number -> Int in return number * 2 }
可以简化为:
let doubled = numbers.map { number in return number * 2 }
3. 省略 return
关键字
如果闭包只有一行表达式,可以省略 return
关键字。例如:
let doubled = numbers.map { number in return number * 2 }
可以简化为:
let doubled = numbers.map { number in number * 2 }
4. 使用简写参数名
可以使用 $0
, $1
, $2
等简写参数名来代替显式命名的参数。例如:
let doubled = numbers.map { number in number * 2 }
可以简化为:
let doubled = numbers.map { $0 * 2 }
5. 尾随闭包
如果闭包是函数的最后一个参数,可以将闭包写在函数调用的括号外面。例如:
let doubled = numbers.map({ number in number * 2 })
可以简化为:
let doubled = numbers.map { number in number * 2 }
通过这些简化方式,可以使闭包表达式更加简洁和易读。