如果我在Groovy中定义一个闭包def c = {println "foo"} 我可以使用以下任意一种方式调用它:c() 或者c.call() 据我所知,这两种方法是相同的。然而,最近我发现了第三种方式。c.doCall() call() 和 doCall() 之间有什么区别吗? 谢谢, Don
doCall方法是在调用c()或c.call()时被调用的方法。 我发现有一个例子声称它用于从内部调用闭包,但使用call()似乎也可以实现。 文档说,您需要提供doCall()方法来按顺序指定参数以便在短形式(不显式使用call())中调用闭包。但我不知道他们期望它如何工作。 这里有关于call vs. doCall的解释。