java Groovy.“for”循环中的多重初始化无法编译

wlzqhblo  于 2023-06-28  发布在  Java
关注(0)|答案(1)|浏览(94)

当我使用IntelliJ IDEA中内置的Groovy工具执行以下代码时,发生了一个错误。

StringBuilder sb = new StringBuilder()

String a = "abc"

String b = "123"

for (int i = 0, j = 0; i < a.length() || j < b.length(); i++, j++) {

    if (i < a.size()) {
        print(a[i])

        sb.append(a[i])
    }

}

print(sb)

错误如下

org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
ideaGroovyConsole.groovy: 8: unexpected token: = @ line 8, column 12.
   for (int i = 0, j = 0; i < a.length() || j < b.length(); i++, j++) {
              ^

1 error

    at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
    at org.codehaus.groovy.control.ErrorCollector.addFatalError(ErrorCollector.java:150)
    at org.codehaus.groovy.control.ErrorCollector.addError(ErrorCollector.java:120)
for (int i = 0, j = 0; i < a.length() || j < b.length(); i++, j++) {

我的猜测是语法有问题,但没有发任何问题。

lmvvr0a8

lmvvr0a81#

您使用的是哪个版本的Groovy?Groovy有时候不支持在for循环的第一部分初始化多个变量。查看更多:https://stackoverflow.com/a/27386418/1842599
我已经用Groovy 4检查过了(我安装了4.0.8),多重初始化工作起来很有魅力。
因此,您可以考虑升级Groovy版本,或者在升级不可能的情况下重写代码。

相关问题