我正在学习scala,但遇到了一个简单的问题。我想使用foreach循环为变量赋值。
例如:
{{1}}
请告诉我如何在scala中实现这一目标?
答案 0 :(得分:3)
1)你可以.map
list
使用scala> val initialOrders = List("order1", "order2", "order3")
initialOrders: List[String] = List(order1, order2, order3)
如果你想处理它并想要一个其他东西的列表(就像数学f:A =&gt; B)< / em>的
输入设置
scala> def shipOrder(order: Any) = order + " is shipped"
shipOrder: (order: Any)String
<强>功能强>
scala> val shippedOrders = initialOrders.map(order => { val myorder = "my" + order; println(s"shipping is ${myorder}"); shipOrder(myorder) })
shipping is myorder1
shipping is myorder2
shipping is myorder3
shippedOrders: List[String] = List(myorder1 is shipped, myorder2 is shipped, myorder3 is shipped)
处理输入设置和存储输出
foreach
2)或者,当您不关心函数的输出时,您可以简单地在列表上使用scala> initialOrders.foreach(order => { val whateverVariable = order+ "-whatever"; shipOrder(order) })
进行迭代。
select subject,
cuml_marks,
max(cuml_marks) over (partition by subject)
- min(cuml_marks) over (partition by subject) as cuml_diff
from (
select subject,
sum(marks) over (
partition by subject order by id
) as cuml_marks
from t
) t;
注意强>
What is the difference between a var and val definition in Scala?
答案 1 :(得分:2)
这是在List上运行foreach操作的正确方法。
val list: List[T] = /* list definition */
list foreach { x => var a = x; /* some operation */ }