[英]Storing values obtained from for each loop Scala
谁是试图存储值斯卡拉初学者获得在斯卡拉foreach循环,但惨遭失败。 当前的基本foreach循环如下所示:
order.orderList.foreach((x: OrderRef) => {
val references = x.ref}))
运行时,此foreach循环将执行两次,并每次返回一个引用。 我正在尝试捕获每次运行时返回的参考值(所以两个参考以列表或数组形式出现,以便以后可以访问这些值)
我真的很困惑如何去做...
我试图检索和存储值作为一个数组,但跑的时候,数组列表似乎并没有持有任何值。
这是我的尝试:
val newArray = Array(order.orderList.foreach((x: OrderRef) => {
val references = x.ref
}))
println(newArray)
任何建议将不胜感激。 如果有更好的方法可以做到这一点,请分享。 谢谢
使用map
代替foreach
order.orderList.map((x: OrderRef) => {x.ref}))
val references = x.ref
也不会返回任何内容。 它创建新的局部变量并为其赋值。
同意答案1,我相信原因如下:
“ foreach”或“ for”的返回值应为“ Unit”,而“ map”是类型更改后的结果,如以下示例所示:
def map[B](f: (A) ⇒ B): Array[B]
比较for
和foreach
,原型应该是这样的
def foreach(f: (A) ⇒ Unit): Unit
因此,如果您想获取从源数据map
的更改后的数据,请考虑更多有关map
, flatMap
功能,这些功能将遍历所有数据,例如for
和foreach
(带有yield
除外),但带有返回值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.