当我尝试在可变 Map
中插入一个元素时,我希望这个元素插入到我的 Map 而不是返回 Map(如 PF,不可变对象(immutable对象) ecc ...)
出于这个原因,我使用了可变集合,但在我的 map 中,“a”不可能插入元素(副作用),但此更新仅在返回类型中,e 不在 a 中。
为什么?如何在我的 map 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
最佳答案
那是因为你将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)
关于scala - 副作用 mutable.Map scala,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57198703/