所以,如果我有以下对象:
case class Purple(x: Int, y: Int, z: Int)
我想创建一个只向其中一个成员添加25的方法。
我会想象以下内容(如果我想将其添加到x):
def add25ToX(purple: Purple) : Purple = {
this.x + 25 }
但我不能因为它想要紫色而不是国际象棋。我该如何解决这个问题?
答案 0 :(得分:3)
这是不可变结构的基本原则:您不修改现有数据。而是返回具有修改值的新Purple
。您可以使用复制构造函数来简洁:
def add25ToX(purple: Purple): Purple = purple.copy(x = purple.x + 25)
或者你可以在类
中定义它case class Purple(x: Int, y: Int, z: Int) {
def add25ToX: Purple = this.copy(x = x + 25)
}