use*_*377 3 scala playframework
我在play框架的scala模板中有一个字符串列表.
我希望一次迭代超过一半的列表,然后第二次迭代列表的另一半.
我不知道如何为此编写高效的迭代器.
我已经尝试过
@for(i <- 0 until list.length/2 )
{list(i) }
然后进行第二次循环
@for(i <- list.length/2+1 until list.length )
{ list(i) }
Run Code Online (Sandbox Code Playgroud)
这有效,但复杂性变高.
后来我做了
@defining(list.size) { size =>
@for(i <- 0 until size/2)
{list(i) }
}
Run Code Online (Sandbox Code Playgroud)
现在它似乎工作正常.
这是一种方式.
scala> List("a","b","c","d","e")
res0: List[String] = List(a, b, c, d, e)
scala> res0.splitAt(res0.size/2)
res1: (List[String], List[String]) = (List(a, b),List(c, d, e))
scala> res1._1.foreach(println(_))
a
b
scala> res1._2.foreach(println(_))
c
d
e
Run Code Online (Sandbox Code Playgroud)