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

Why a Map is by default immutable in Scala?

使用 scala (2.12.2),在 class

中创建新地图时
private var myMap = Map.empty[String, ActorRef]

默认我得到一个不可变的 class

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

我期望它是可变的,因为我将它定义为 'var'

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