当我试图在可变的Map中插入一个元素时,我希望这个元素被插入到我的映射中,而不是返回映射中(像PF,不可变的obj ecc...)出于这个原因,我使用了可变集合,但是在我的map中" a“是不可能插入元素(副作用)的,但是这个更新只在返回类型中,e不在a中。为什么?如何在我的地图中插入新元素(x -> y)??
def a = scala.collection.mutable.map[Int,Int]()
def x = 5
def y = 6
a+= (x -> y)
println(a.size) // print 0发布于 2019-07-25 17:39:57
这是因为您已经将a定义为def,这意味着一个方法。这意味着每次调用a时,都会返回可变映射的一个新实例。你想要的是一个val
@ val a = mutable.Map[Int, Int]()
a: mutable.Map[Int, Int] = Map()
@ a += (5 -> 6)
res2: mutable.Map[Int, Int] = Map(5 -> 6)https://stackoverflow.com/questions/57198703
复制相似问题