Scala将Int添加到单个成员

时间:2014-09-07 22:57:50

标签: scala int add

所以,如果我有以下对象:

case class Purple(x: Int, y: Int, z: Int)

我想创建一个只向其中一个成员添加25的方法。

我会想象以下内容(如果我想将其添加到x):

def add25ToX(purple: Purple) : Purple = {
this.x + 25 }

但我不能因为它想要紫色而不是国际象棋。我该如何解决这个问题?

1 个答案:

答案 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)
}