【发布时间】:2014-02-16 10:22:34
【问题描述】:
在 Groovy 控制台中,版本 2.2.1: 为什么会这样?
class C {
def foo = { "foo" }
def bar = { foo() }
}
new C().bar()
但这失败了?
class C {
String foo = { "foo" }
String bar = { foo() }
}
new C().bar()
以上由 tim_yates 回答,但我有一些相关的东西似乎不值得为它创建一个新问题(不确定礼仪)。当我将它们设为静态时,当我调用 bar() 时它也会失败。为什么 bar 闭包不捕获 foo?
class C {
static foo = { "foo" }
static bar = { foo() }
}
C.foo() //works
C.bar() //fails
【问题讨论】:
-
我认为这应该是一个不同的问题
-
谢谢,tim_yates。我发布了它here