2

教程一开始就提到了可变集,但为什么 REPL 会在添加新元素时res4更改实例名称?res5'res' 不是 REPL 打印的实例名称吗?下面是上下文中的代码。斯卡拉初学者。如果问题是微不足道的,请多多包涵。

scala> val set = scala.collection.mutable.Set[Int]()
val set: scala.collection.mutable.Set[Int] = Set()

scala> set += 1
val res0: scala.collection.mutable.Set[Int] = Set(1)

scala> set += 2 += 3
val res1: scala.collection.mutable.Set[Int] = Set(1, 2, 3)
4

1 回答 1

4

参考并没有改变,这意味着res0 == res1。Scala repl 将为未分配任何名称的表达式生成名称,无论它是否可变。

另外看看文档。对于mutable.Set,该方法+=导致Set.this.type。由于返回了一个值,因此必须为其分配一些名称。

于 2020-04-13T05:14:39.887 回答