调用 Groovy 闭包
Posted
技术标签:
【中文标题】调用 Groovy 闭包【英文标题】:Invoking Groovy closures 【发布时间】:2011-01-02 03:41:39 【问题描述】:如果我在 Groovy 中定义一个闭包
def c = println "foo"
我可以使用任一方法调用它
c()
或
c.call()
AFAIK,这两个是相同的。但是,我最近发现了第三种方式
c.doCall()
call()
和doCall()
之间有什么区别
谢谢, 唐
【问题讨论】:
【参考方案1】:doCall 方法是调用 c() 或 c.call() 时调用的方法。
我发现了一个示例,声称它用于从内部调用闭包,但这似乎也适用于 call()。
documentation 表示您需要提供一个 doCall() 方法来指定参数,以便以简短形式调用闭包(无需显式使用 call())。但我不知道他们究竟希望它如何工作。
Here's an explanation of call vs. doCall.
【讨论】:
你能解释一下(也许举个例子)你的意思是“你需要提供一个 doCall() 方法来指定参数以便以简短的形式调用闭包”以上是关于调用 Groovy 闭包的主要内容,如果未能解决你的问题,请参考以下文章
11-Groovy-Closures(闭包)和Ranges(范围)
Groovy闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )
Groovy闭包 Closure ( 闭包类 Closure 简介 | 闭包 parameterTypes 和 maximumNumberOfParameters 成员用法 )