Groovy中的匿名代码块

在Groovy中是否可以使用匿名代码块?例如,我正在尝试将以下Java代码转换为Groovy:

{

int i = 0;

System.out.println(i);

}

int i = 10;

System.out.println(i);

我能想到的最接近的翻译如下:

boolean groovyIsLame = true

if (groovyIsLame) {

int i = 0

println i

}

int i = 10

println i

我知道匿名代码块通常是一种反模式。但是具有类似“ inputStream0”和“

inputStream1”之类的变量的变量也是一种反模式,因此对于我正在处理的这段代码,匿名代码块会有所帮助。

回答:

您可以在Groovy中使用匿名代码块,但这些代码和闭包之间的语法不明确。如果尝试运行此命令,则实际上会收到此错误:

歧义表达式可以是无参数的闭包表达式或隔离的开放代码块;解决方案:添加一个显式的闭包参数列表,例如{it->

…},或通过在第1行第1列的行上给它一个标签,例如L:{…},来强制将其视为开放块。 1个

根据建议,您可以使用标签,它将允许您使用匿名代码块。用Groovy重写Java代码:

l: {

int i = 0

println i

}

int i = 10

println i

以上是 Groovy中的匿名代码块 的全部内容, 来源链接: utcz.com/qa/398041.html

回到顶部