为什么 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
声明的变量,并且可以修改映射,但不能修改变量。
使用 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
声明的变量,并且可以修改映射,但不能修改变量。