有没有办法在Groovy中使用匿名代码块?例如,我正在尝试将以下Java代码转换为Groovy:
{
int i = 0;
System.out.println(i);
}
int i = 10;
System.out.println(i);
Run Code Online (Sandbox Code Playgroud)
我能想出的最接近的翻译如下:
boolean groovyIsLame = true
if (groovyIsLame) {
int i = 0
println i
}
int i = 10
println i
Run Code Online (Sandbox Code Playgroud)
我知道匿名代码块通常是一种反模式.但是拥有像"inputStream0"和"inputStream1"这样的名称的变量也是一个反模式,所以对于我正在研究的代码,匿名代码块会有所帮助.
Chr*_*ail 16
您可以在Groovy中使用匿名代码块,但这些代码块和闭包之间的语法不明确.如果您尝试运行此操作,实际上会出现此错误:
模糊表达式可以是无参数闭包表达式或孤立的开放代码块; 解决方案:添加一个显式的闭包参数列表,例如{it - > ...},或通过给它一个标签强制它被视为一个开放块,例如L:{...}在第1行,列: 1
根据建议,您可以使用标签,它将允许您使用匿名代码块.在Groovy中重写Java代码:
l: {
int i = 0
println i
}
int i = 10
println i
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10021 次 |
| 最近记录: |