Playframework scala如何创建临时变量
嗨,我有一个while循环:Playframework scala如何创建临时变量,scala,playframework,playframework-2.0,Scala,Playframework,Playframework 2.0,嗨,我有一个while循环: @for(i <- 0 until consoles.size) { ... Do something ... Add records to a column } @对于(i播放中的模板,您不能定义var。此外,在Scala中,建议您使用不可变对象,而不是可变对象 你有两种选择来做你想做的事: 如@Maxime所回答的,使用一种更具scala风格的方式 处理vals 除了@Maxime的答案外,您还可以使用定义 发件人: @defining(
@for(i <- 0 until consoles.size) {
... Do something
... Add records to a column
}
@对于(i播放中的模板,您不能定义var
。此外,在Scala中,建议您使用不可变对象,而不是可变对象
你有两种选择来做你想做的事:
如@Maxime所回答的,使用一种更具scala风格的方式
处理val
s
除了@Maxime的答案外,您还可以使用定义
发件人:
@defining(user.firstName+“”+user.lastName){fullName=>
你好@fullName
}
在您的情况下,有更好的解决方案。由于模板在scala中,您可以使用集合API中的一些优秀方法,例如groupBy:
@myList.groupBy(_.groupname).map {
case (group, items) => {
<h2>@group</h2>
@items.map { item =>
...
}
}
}
@myList.groupBy(u.groupname).map{
案例(组、项目)=>{
@团体
@items.map{item=>
...
}
}
}
Scala模板不需要Scala技能,但你至少需要了解lists API,它是真正的救命稻草!这不会使fullname
avar
。正确。你不能在play2模板中定义var。你必须:a)定义VAL b)使用@Maxime回答的更实用的方法。我的回答是a),但不是很清楚。谢谢你,如果我使用@defining,这是否声明了一个字符串?或者我可以使用这个对象作为int吗?函数prorotype是def-defining[T](T:T)(handler:T=>Any),您可以使用任何类型。+1,现在正好解决了这个问题。必须用@defining包装大量代码是令人讨厌的,但是不能使用可变变量是一个主要的PITA,特别是在处理嵌套循环时。当我没有状态计数器可以使用时,如何停止迭代内部循环?
@defining(user.firstName + " " + user.lastName) { fullName =>
<div>Hello @fullName</div>
}
@myList.groupBy(_.groupname).map {
case (group, items) => {
<h2>@group</h2>
@items.map { item =>
...
}
}
}