在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()时它也会失败 . 为什么酒吧关闭没有 grab foo?
class C {
static foo = { "foo" }
static bar = { foo() }
}
C.foo() //works
C.bar() //fails
1 回答
因为
{ "foo" }
或{ foo() }
都不是字符串?他们是
Closure<String>
尝试: