Is there a way to use anonymous code blocks in Groovy? For example, I’m trying to translate the following Java code into Groovy:
{
int i = 0;
System.out.println(i);
}
int i = 10;
System.out.println(i);
The closest translation I can come up with is the following:
boolean groovyIsLame = true
if (groovyIsLame) {
int i = 0
println i
}
int i = 10
println i
I know anonymous code blocks are often kind of an antipattern. But having variables with names like “inputStream0” and “inputStream1” is an antipattern too, so for this code I’m working on, anonymous code blocks would be helpful.
You can use anonymous code blocks in Groovy but the syntax is ambiguous between those and closures. If you try to run this you actually get this error:
Following the suggestion, you can use a label and it will allow you to use the anonymous code block. Rewriting your Java code in Groovy: