Groovy for循环有多个计数器?

时间:2013-01-26 08:14:22

标签: groovy

以下是在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

为什么呢?如何使这项工作?

2 个答案:

答案 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不允许这样做,那很可能是因为它不允许这种黑客行为。