在Scala中是否存在一些對「不可變類的setter」有用的syntaxic糖?scala不可變類vals setters
下面是一個例子:
class Bob (val x:Int, val y:String)
爲了改變x
或y
,我可以實現這樣說:
object Bob {
def updX (b:Bob) (x:Int) = new Bob (x, b.y)
def updY (b:Bob) (y:String) = new Bob (b.x, y)
}
class Bob (val x:Int, val y:String) {
def updX (x:Int) = Bob.updX(this)(x)
def updY (y:String) = Bob.updY(this)(y)
}
該解決方案是可怕的,因爲我的一些類有8個參數。
有沒有更好的方法來實現這一目標?
你的意思就像案例類的'複製'方法? –