Groovy Closure语法

时间:2011-01-12 15:52:01

标签: groovy closures

如果我写

test = {
  println("Hello world");
}

这会在名为 test 的变量中创建一个闭包,我可以使用test();调用

然而

test: {
  println("Hello world");
}

立即调用闭包,我无法使用test();

调用它

第二种语法的目的是什么?

2 个答案:

答案 0 :(得分:4)

这看起来像一个普通的旧标签java代码块。不是Groovy闭包语法。这将允许您在块中区分局部变量。如果它是一种替代语法,我会避免它。

public void do(){
 test:{
   String hello = "hello";
 }

 anotherTest:{
   String hello = "hello";
 }
}

答案 1 :(得分:1)

执行此操作时,您不会定义闭包,而是标记代码块。

事实上,正如this page states一样,Groovy支持老派标签。

烨。它对我来说也是一个“强烈的”惊喜。