推荐答案
在 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 }通过这些简化方式,可以使闭包表达式更加简洁和易读。