【问题标题】:Side effects mutable.Map scala副作用 mutable.Map scala
【发布时间】:2019-12-03 12:56:33
【问题描述】:

当我尝试在可变Map 中插入一个元素时,我希望这个元素被插入到我的 Map 而不是返回 Map(如 PF、不可变 obj ecc...) 出于这个原因,我使用了可变集合,但在我的地图中,“a”是不可能插入元素(副作用),但此更新仅在返回类型中,而不是在 a 中。 为什么?如何在我的地图 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

【问题讨论】:

    标签: scala side-effects


    【解决方案1】:

    那是因为您将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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-22
      • 2011-06-29
      • 2017-04-30
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 2015-03-01
      相关资源
      最近更新 更多