小智 12
比较Java的lambdas(实现)和Swift的功能类型(类型)是不正确的.但是可以将Java的lambda与Swifts的闭包进行比较.Swift的功能类型是Java的功能接口.
闭包比lambdas更强大:
(主要)闭包可以捕获非常数变量,例如:G
func makeIncrementer(forIncrement amount: Int) -> () -> Int {
var runningTotal = 0
return () -> Int {
runningTotal += amount
return runningTotal
}
}
Run Code Online (Sandbox Code Playgroud)(次要)闭包支持简写参数名称,例如
reversedNames = names.sorted(by: { $0 > $1 } )
Run Code Online (Sandbox Code Playgroud)(次要)尾部封闭支撑,例如
someFunctionThatTakesAClosure() {
// trailing closure's body goes here
}
Run Code Online (Sandbox Code Playgroud)另一方面,功能接口比功能类型更强大.它们允许声明其他方法,例如java.util.Comparator,它定义了一组比较器构建的方便方法,例如reversed和thenComparing.
| 归档时间: |
|
| 查看次数: |
4867 次 |
| 最近记录: |