如果我在Groovy中定义一个闭包
def c = {println "foo"}
我可以使用
调用它c()
或
c.call()
AFAIK,这两者完全相同。但是,我最近发现了第三种方式
c.doCall()
call()
和doCall()
谢谢, 唐
答案 0 :(得分:14)
doCall方法是在调用c()或c.call()时调用的方法。
我发现了一个声明它用于从内部调用闭包的示例,但这似乎也适用于call()。
documentation表示你需要提供一个doCall()方法来指定参数,以便以简短的形式调用闭包(没有显式地使用call())。但我不知道他们究竟希望如何工作。