案例类的浅表复制在Scala中如何工作?

问题描述 投票:0回答:1

我是Scala的初学者,我对案例类var的浅表复制如何工作感到困惑。我尝试了一个类似于答案https://stackoverflow.com/a/52967063/11680744的示例。这是我的代码。

case class Entity(eType: String, var unique : Boolean)

val entity = Entity("number", true)
val entity2 = entity.copy()
entity2.unique = false

println(entity)
println(entity2)

输出为:

Entity(number,true)
Entity(number,false)

为什么entity2中的更改未反映在entity中?

scala case-class shallow-copy
1个回答
0
投票

您的代码等同于链接的问题中的代码,并带有

 entity2.unique = false

对应

 p1.firstname = "raghu"

并且与答案中的代码不同

 a1.l.remove(1)

不会重新分配a1.l,因此a1.la2.l仍指向相同的ArrayBuffer

© www.soinside.com 2019 - 2024. All rights reserved.