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