[英]Scala iterate through two sequences and append to a list
我具有以下方法簽名,該方法簽名旨在合並來自兩個不同序列的元素:
def newMap(local: Seq[String], passed: Seq[(String, Int)]): Map[String, Int] = {
}
在這種情況下,本地值中的字符串應該是默認值0的鍵。是否可以使用for-forhension來同時遍歷這兩個序列,並為第一個序列添加默認0值地圖上的順序? 我也試圖在這里不使用可變變量。
def newMap(local: Seq[String], passed: Seq[(String, Int)]): Map[String, Int] =
(local.view.map((_, 0)) ++ passed.view).toMap
在上面帶有view
的代碼中,我們首先將輸入集合轉換為它們的惰性包裝器,而不是立即執行以下所有操作來累積它們,並且僅在強制使用某些嚴格版本時才執行它們。 這使我們能夠在toMap
一次遍歷執行所有操作( map
, ++
, toMap
)。 最終的toMap
強制toMap
的惰性集合放入嚴格的Map
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.