在scala模板中初始化变量

时间:2013-11-29 21:42:09

标签: playframework-2.0 scala-template

我在Play中的scala模板中有一个简单的代码

@( val i = 0){
.......
....

i => i+1; // incremental 
}

但上面的代码不知道如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

可以获取Scala for循环中的迭代索引,只需zipWithIndex您的收藏:

@for((day, index) <- model.days.zipWithIndex) {
    <li>Day @index is @day</li>
}

喜欢described in other question

答案 1 :(得分:0)

Scala for循环与Java for循环不同。没有循环索引增加,而是从序列中获取连续值。所以你想要的循环是这样的:

for(i <- 0 until 10) {
  ...
}

在Play模板中,上面的循环如下所示:

@for(i <- 0 until 10) {
   <p>number: @i</p>
}

上述循环中的序列是0 until 10,实际上是一个范围。如果要使用i在数组中查找值,请不要这样做。直接从数组中获取元素:

@for(element <- myArray) {
  <p>@element</p>
}