Dón*_*nal 17
该代码定义了一个foo返回闭包的函数/方法.出于理解此代码的目的,您可以将闭包视为没有名称且未附加到任何对象的方法.
可以通过传递一个参数来调用闭包.经闭返回的值将是n += it这里it是用来指一个封闭的参数的默认名称.如果您希望闭包的参数具有不同的名称,例如,closureParam您需要明确定义它:
def foo(n) {
return {closureParam -> n += closureParam}
}
Run Code Online (Sandbox Code Playgroud)
将->闭包的参数列表与闭包体分开.如果未定义参数列表,则默认值为名为的单个参数it.也许调用闭包的例子会有所帮助:
Closure closure = foo(2)
def closureReturnVal = closure.call(4)
assert closureReturnVal == 6 // because 4 + 2 == 6
// you can omit .call when calling a closure, so the following also works
closure = foo(3)
assert 8 == closure(5)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
333 次 |
| 最近记录: |