简体   繁体   English

在scala foreach循环中分配值

[英]assign value in scala foreach loop

I am learning scala but got stuck in a simple problem. 我正在学习scala,但陷入了一个简单的问题。 I wanted to assign a value to a variable using foreach loop. 我想使用foreach循环为变量分配一个值。

for example: 例如:

List A
foreach x in A { variable b = x; => then some operation => print result}

can you please let me know how I can achieve this in scala? 您能告诉我如何在Scala中实现这一目标吗?

1) You can use .map on list if you want to process it and want a list of something else back (just like in maths f:A=>B) 1)如果要处理.map并希望返回其他list则可以在list上使用.map (就像在数学f:A => B中一样)

input set 输入集

scala> val initialOrders = List("order1", "order2", "order3")
initialOrders: List[String] = List(order1, order2, order3)

function 功能

scala> def shipOrder(order: Any) = order + " is shipped"
shipOrder: (order: Any)String

process input set and store output 处理输入集并存储输出

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)

2) Or you can simply iterate with foreach on list when you don't care about output from function. 2)或者,当您不关心函数的输出时,也可以简单地使用列表中的foreach进行迭代。

scala> initialOrders.foreach(order => { val whateverVariable = order+ "-whatever";  shipOrder(order) })

Note 注意

What is the difference between a var and val definition in Scala? Scala中的var和val定义有什么区别?

this is proper way of running a foreach operation on a List. 这是在列表上运行foreach操作的正确方法。

val list: List[T] = /* list definition */
list foreach { x => var a = x; /* some operation */ }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM