为什么在Scala中默认情况下Map是不可变的?

时间:2017-10-06 15:15:49

标签: scala scala-2.12

使用scala(2.12.2),在类中创建新Map时

private var myMap = Map.empty[String, ActorRef]

默认情况下我得到一个不可变的类

scala.collection.immutable.Map[String,akka.actor.ActorRef]

我期待变得可变,因为我将其定义为' var'

1 个答案:

答案 0 :(得分:6)

这里可变的是myMap所持有的引用,你可以根据需要重新分配变量。价值的可变性或不变性指向该参考是另一回事。如果您创建了一个可变映射,则可以将其分配给通过val声明的变量,并且可以修改映射,但不能修改变量。