【问题标题】:Mutable Map Collection in Scala can NOT update a single elementScala 中的可变映射集合不能更新单个元素
【发布时间】:2017-10-10 00:17:32
【问题描述】:

我有以下问题。

val graph = scala.collection.mutable.Map[Int, Int]() ++= (0 until 10).map(i => (i, i + 1)).toMap

graph(graph.size - 1) = 20   // BOOOM!!!

val graphSize = 9
graph(graphSize) = 20     //BOOM!!!

graph(9) = 20    //Works Fine!

每当我尝试使用变量更新可变映射中的单个元素时,它都会爆炸!!!

Error:(45, 120) not found: value graph
inst$A$A.`get$$instance_2$$graph(graph.size - 1)`;
println("graph(graph.size - 1): " + {val $$temp$$ = inst$A$A.graph(graph.size      - 1) ;
MacroPrinter.printDefInfo($$temp$$).replace("inst$A$A.", "") + " = " + ( print$$$Worksheet$$$Array$$$($$temp$$) ).stripPrefix("A$A65$A$A65$")})
                                                                                                                  ^

我不知道为什么会这样。有人可以帮忙吗?

【问题讨论】:

  • 你是什么意思“繁荣”?我刚刚在 REPL 中运行它,它运行良好。
  • 错误:(26, 120) not found: value graph inst$A$A.get$$instance_0$$graph(graph.size - 1); println("graph(graph.size - 1): " + {val $$temp$$ = inst$A$A.graph(graph.size - 1) ; MacroPrinter.printDefInfo($$temp$$).replace( "inst$A$A.", "") + " = " + ( print$$$Worksheet$$$Array$$$($$temp$$) ).stripPrefix("A$A48$A$A48$ ")}) ^
  • 错误信息基本上是说没有图形这样的东西。您之间是否还有其他事情(例如,图形的使用与图形定义不在同一范围内)?只需将这两行放入 REPL 即可。
  • @AssafMendelson 不,我之间没有任何关系。我不知道为什么这会发生在我身上。我试图从昨天开始弄清楚,但我仍然没有答案。 :(((
  • 尽量简化一切。代码原样在 REPL 中工作(我只是将它放在现有项目中,它也可以工作)。

标签: scala dictionary collections


【解决方案1】:

好的。经过多次来回运行后,我发现只有 update() 方法可以工作!还不知道为什么。 所以更新只能由以下人员完成:

graph.update(key, value)

至少在我的机器上...

【讨论】:

    猜你喜欢
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2011-03-26
    • 2017-09-11
    相关资源
    最近更新 更多