sna*_*nap 2 scala set immutable-collections
文档说:
保证scala.collection.immutable包中的集合对每个人都是不可变的。这样的集合在创建后将永远不会改变。
但是我没有得到我期望的行为:
scala> var test3 = scala.collection.immutable.Set[String]("one", "two")
test3: scala.collection.immutable.Set[String] = Set(one, two)
scala> test3 += "three"
scala> println(test3)
Set(one, two, three)
Run Code Online (Sandbox Code Playgroud)
我在这里想念什么?
var可以重新分配A (它是一个变量,因此可以变化)。然后,您将不再完全引用先前的对象。
val不能重新分配A (它是一个值,所以不能改变),但是您可以在该对象上调用方法,例如,如果该值是一个mutable集合。
当我说变化时,我基本上是指参考不能变化。我知道这有点令人困惑。
换句话说,vals和vars都可以指向内部状态可以更改的对象。就像一张可变的地图。
我鼓励您自己编写一个验证该表的代码示例:
Run Code Online (Sandbox Code Playgroud)| MutableSet | ImmutableSet -------------------------------------------------- var | Reassign. Insert element | Reassign val | Insert | None of these
| 归档时间: |
|
| 查看次数: |
888 次 |
| 最近记录: |