【发布时间】:2011-01-12 15:52:01
【问题描述】:
如果我写
test = {
println("Hello world");
}
这会在一个名为 test 的变量中创建一个闭包,我可以使用 test();
然而
test: {
println("Hello world");
}
立即调用闭包,我不能用test();调用它
第二种语法的目的是什么?
【问题讨论】:
如果我写
test = {
println("Hello world");
}
这会在一个名为 test 的变量中创建一个闭包,我可以使用 test();
然而
test: {
println("Hello world");
}
立即调用闭包,我不能用test();调用它
第二种语法的目的是什么?
【问题讨论】:
这看起来像一个普通的旧标记 Java 代码块。不是 Groovy 闭包语法。这将只允许您在块内限定局部变量。如果它是另一种语法,我会避免它。
public void do(){
test:{
String hello = "hello";
}
anotherTest:{
String hello = "hello";
}
}
【讨论】:
map = [ test:{ println 'Hi' } ] 这是一个完全有效的闭包定义
【讨论】: