Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Collections IntMap在映射后更改类型_Collections_Scala_Map_Lambda_Immutability - Fatal编程技术网

Collections IntMap在映射后更改类型

Collections IntMap在映射后更改类型,collections,scala,map,lambda,immutability,Collections,Scala,Map,Lambda,Immutability,考虑这段代码: Welcome to Scala version 2.8.0.r0-b20100714201327 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_20). scala> val a = IntMap((1,1)) a: scala.collection.immutable.IntMap[Int] = IntMap((1,1)) scala> a.map(x => (x._1,x._2 + 1)) res23: scala.colle

考虑这段代码:
Welcome to Scala version 2.8.0.r0-b20100714201327 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_20).
scala> val a = IntMap((1,1))
a: scala.collection.immutable.IntMap[Int] = IntMap((1,1))
scala> a.map(x => (x._1,x._2 + 1))
res23: scala.collection.immutable.Map[Int,Int] = Map((1,2))
IntMap.map的标题是这样的
 def   map  [B]  (f: ((Int, T)) ⇒ B)  : immutable.IntMap[B]
def映射[B](f:((Int,T))⇒ B) :不可变。IntMap[B]
[用例]通过将函数应用于所有元素来构建新集合 这是一个不可变的整数映射。
我应该如何构造lambda来返回IntMap?

在Scala 2.8下,我得到

scala> a.map(x => (x._1,x._2 + 1))
res0: scala.collection.immutable.IntMap[Int] = IntMap((1,2))

下面是(修复的)bug:Side comment:您可以使用
mapValues{{u+1}
,尽管它与IntMap表现出相同的bug行为。这个bug似乎在trunk中修复了,但在2.8.0.final中没有。为了纠正我之前的评论,这种行为应该出现在
mapValues
中,因为它返回的是地图视图而不是新地图。看见