gpt4 book ai didi

Scala 2.8 和 map View

转载 作者:行者123 更新时间:2023-12-02 07:51:58 25 4
gpt4 key购买 nike

2.7 中,我可以执行以下操作:

val lazyM: Map[_, _] = map.projection.mapElements(v => expCalc(v)) //MAP VIEW

我找不到在 2.8 中执行此操作的方法,实际上以 map 结束:

val m: Map[_, _] = map.view.map(kv => kv._1 -> expCalc(kv._2)).toMap //STRICT

这似乎是功能的重大损失,因此我认为它隐藏在收藏库中的某个地方。有人有什么想法吗?

编辑 - 我愚蠢地假设 mapValues 与旧 mapElements 完全相同

最佳答案

有些令人惊讶的是,Map#mapValues 生成了一个(转换后的) View :

scala> Map(1 -> 2, 3 -> 4, 5 -> 6)
res0: scala.collection.immutable.Map[Int,Int] = Map((1,2), (3,4), (5,6))

scala> res0.mapValues { v => println("computing from " + v); v + 1 }
computing from 2
computing from 4
computing from 6
res1: scala.collection.immutable.Map[Int,Int] = Map((1,3), (3,5), (5,7))

scala> res1(1)
computing from 2
res2: Int = 3

scala> res1(5)
computing from 6
res3: Int = 7

关于Scala 2.8 和 map View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3266405/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com