创建具有某些更改的对象的副本

Case 类提供了一个 copy 方法,该方法创建一个新对象,该对象与旧对象共享相同的字段,并进行某些更改。

我们可以使用此功能从之前的具有某些相同特征的对象创建新对象。这个简单的案例类来演示此功能:

case class Person(firstName: String, lastName: String, grade: String, subject: String)
val putu = Person("Putu", "Kevin", "A1", "Math")
val mark = putu.copy(firstName = "Ketut", lastName = "Mark")
// mark: People = People(Ketut,Mark,A1,Math)

在这个例子中,我们可以看到这两个对象具有相似的特征(grade = A1subject = Math),除非在副本中指定了它们(firstNamelastName)。