【问题标题】:Invoking Groovy closures调用 Groovy 闭包
【发布时间】:2011-01-02 03:41:39
【问题描述】:

如果我在 Groovy 中定义一个闭包

def c = {println "foo"}

我可以使用任一方法调用它

c()

c.call()

AFAIK,这两个是相同的。但是,我最近发现了第三种方式

c.doCall()

call()doCall()之间有什么区别

谢谢, 唐

【问题讨论】:

    标签: groovy closures


    【解决方案1】:

    doCall 方法是调用 c() 或 c.call() 时调用的方法。

    我发现了一个示例,声称它用于从内部调用闭包,但这似乎也适用于 call()。

    documentation 表示您需要提供一个 doCall() 方法来指定参数,以便以简短形式调用闭包(无需显式使用 call())。但我不知道他们究竟希望它如何工作。

    Here's an explanation of call vs. doCall.

    【讨论】:

    • 你能解释一下(也许举个例子)你的意思是“你需要提供一个 doCall() 方法来指定参数以便以简短的形式调用闭包”
    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多