Groovy中的双循环

时间:2013-05-28 13:29:39

标签: loops groovy each

如果我有这样的结构,如何使用每个循环进行双循环:

Termin 1
[  [ 1][2 ][3 ]   ]
Termin 2
[  [1 ] [2 ] [3]  ]

Termin.each(){
            println("first");
           it.each(){
               println("second"); // 1 2 3 
           }
        }

1 个答案:

答案 0 :(得分:3)

未定义属性名称时使用

it。您只需更改名称:

def nested = [[1],[2],[3]]

nested.each { n ->
  n.each { s ->
    print "Nested: $s \n"
  }
}

<强>更新
it隐含在包装闭包中,所以如果你能熟练使用Groovy语义,你也可以使用

def nested = [[1],[2],[3]]

nested.each { 
  // `it` is meant for the nested.each{}
  it.each {
    // `it` is meant for the it.each{}
    print "Nested: $it \n"
  }
}

这两种方法都会产生相同的结果。