在 groovy 中进行以下工作 -
for(def i=0;i<10;i++)
print i
但这在 Java 中有效,C++ 在 groovy 中不起作用 -
for(def i=0,j=0;i<10;i++,j++)
print i + ' ' + j
为什么?如何使这项工作?
在 groovy 中进行以下工作 -
for(def i=0;i<10;i++)
print i
但这在 Java 中有效,C++ 在 groovy 中不起作用 -
for(def i=0,j=0;i<10;i++,j++)
print i + ' ' + j
为什么?如何使这项工作?
它不会工作,因为 Groovy 不接受for 循环中的多个表达式。尝试这个:
[0..10,0..10].transpose().each{ i, j ->
println i + ' ' + j
}
达到同样的效果。
更新以使其更通用。此更新相当于用i++
,递增j+=3
。
(0..<10).collect{[it, it+3]}.each{ i, j ->
println i + ' ' + j
}
你有没有试过这个:
for( def ( int i, int j ) = [ 0, 0 ]; i < 10; i++, j++ )
如果这不起作用,则可能由于最后一部分而失败。
C++ 有一个显式的逗号运算符,这就是它允许这样的构造的方式。
Java 没有逗号运算符,但大概允许这样的构造作为对 for 循环的破解。
如果 Groovy 不允许这样做,很可能是因为它不允许这种 hack。