0

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

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

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

1 回答 1

3

it未定义属性名称时使用。您可以更改名称:

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

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

UPDATE
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"
  }
}

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

于 2013-05-28T13:44:09.380 回答