以下是在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
为什么呢?如何使这项工作?
答案 0 :(得分:1)
由于Groovy不接受for loop中的多个表达式,因此无效。 试试这个:
[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
}
答案 1 :(得分:0)
你试过这个:
for( def ( int i, int j ) = [ 0, 0 ]; i < 10; i++, j++ )
如果这不起作用,可能因为最后一部分而失败。
C ++有一个显式的逗号运算符,它允许这样的构造。
Java没有逗号运算符,但可能允许这样的结构作为for循环的黑客。
如果Groovy不允许这样做,那很可能是因为它不允许这种黑客行为。