Groovy中for循环多变量初始化编译失败求助
Groovy for循环多变量声明语法错误解决
错误原因
你遇到的编译错误是因为Groovy不支持在传统C-style for循环的初始化块中用逗号同时声明并初始化多个变量(即int i = 0, j = 0这种写法),这是Groovy语法与Java的差异点。
解决方法
方案1:将变量声明移到循环外部
保持原有逻辑不变,把多变量初始化放到循环外面:
StringBuilder sb = new StringBuilder() String a = "abc" String b = "123" int i = 0, j = 0 for (; i < a.length() || j < b.length(); i++, j++) { if (i < a.size()) { print(a[i]) sb.append(a[i]) } } print(sb)
方案2:使用Groovy风格的迭代写法
Groovy更推荐使用闭包迭代来替代传统C-style循环,代码更简洁易读:
StringBuilder sb = new StringBuilder() String a = "abc" String b = "123" def maxLength = Math.max(a.length(), b.length()) (0..<maxLength).each { index -> if (index < a.length()) { print(a[index]) sb.append(a[index]) } // 若需要处理字符串b的内容,可在此添加对应逻辑 } print(sb)
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

