Groovy Закрытие Синтаксис - PullRequest
       6

Groovy Закрытие Синтаксис

1 голос
/ 12 января 2011

Если я напишу

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

Это создает замыкание в переменной с именем test , которую я могу вызвать с помощью test();

Однако

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

Немедленно вызывает замыкание, и я не могу вызвать его с помощью test();

Какова цель второго синтаксиса?

Ответы [ 2 ]

4 голосов
/ 12 января 2011

Это похоже на обычный старый помеченный блок кода Java. Не Groovy закрытие синтаксиса. Который просто позволит вам охватить локальные переменные в блоке. Если бы это был альтернативный синтаксис, я бы его избежал.

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

 anotherTest:{
   String hello = "hello";
 }
}
1 голос
/ 12 января 2011

При этом вы не определяете замыкание, а просто маркируете блок кода.

Действительно, поскольку на этой странице указано , Groovy поддерживает ярлыки старой школы.

Да. это также большой сюрприз для меня.

...