我真的只熟悉如何在javascript中执行此操作,因此在Scala中尝试它会出现一些问题。
无论如何我有一个我会多次打电话的功能。每次调用它时,我想用新的密钥对值更新某种关联数组(javascript中的对象)或更新现有的关联数组。
在JS中它看起来像这样......
var obj = {}
// callFunction()
obj = {"a": {"len": 1, "n": 34 }}
// callFunction()
obj = {"a": {"len": 1, "n": 34 }, "b": {"len": 1, "n": 25 }}
// callFunction()
obj = {"a": {"len": 2, "n": 34 }, "b": {"len": 1, "n": 25 }}
我想在scala中模仿,我正在努力以最佳或正确的方式去做。我尝试过像
这样的东西val mutMap3 = collection.mutable.Map.empty[String, collection.mutable.Map.empty[String, Int]]
答案 0 :(得分:3)
val mutMap3 = collection.mutable.Map.empty[String, collection.mutable.Map[String, Int]]
或者,更好:
import collection.mutable.{ Map => MMap }
val mutMap3 = MMap.empty[String, MMap[String, Int]]
它抱怨因为你在类型中有“空”,但empty
是一种方法,而不是一种类型。你想要的是,这是一个空的地图,其值必须是地图。