Groovy中的匿名代码块
在Groovy中是否可以使用匿名代码块?例如,我正在尝试将以下Java代码转换为Groovy:
{ int i = 0;
System.out.println(i);
}
int i = 10;
System.out.println(i);
我能想到的最接近的翻译如下:
boolean groovyIsLame = trueif (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