Scala 使用列表(而不是映射)从For循环获取密钥

Scala 使用列表(而不是映射)从For循环获取密钥,scala,playframework-2.0,Scala,Playframework 2.0,我有一个在模板中循环的模型列表(列表项): @for(item <- items) { // ... } @对于(项目您可以使用.zipWithIndex: @for((item,i) <- items.zipWithIndex) { // ... } @for((item,i)一个选项是在循环中添加一个“counter”。只需在循环之前将其声明为var,将其初始化为0,并在循环结束时递增 另一个选项是在对列表进行迭代之前,在列表上使用zipWithIndex。然

我有一个在模板中循环的模型列表(列表项):

@for(item <- items) {
    // ...
}

@对于(项目您可以使用.zipWithIndex:

@for((item,i) <- items.zipWithIndex) {
    // ...
}
@for((item,i)一个选项是在循环中添加一个“counter”。只需在循环之前将其声明为var,将其初始化为0,并在循环结束时递增


另一个选项是在对列表进行迭代之前,在列表上使用zipWithIndex。然后,您实际上将有一个元组,由列表中的项目及其索引组成,而不是获取循环变量中的项目。

您可以使用其索引压缩列表:

@defining(List("foo", "bar", "baz")) { items => 
  @for((item, i) <- items.zipWithIndex if i % 2 == 0) {
    @item no @i <br/>
  }
}
foo no 0 
baz no 2