[英]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.