我找不到在 scala 中做类似事情的自然方法:
class Car {
var speed: Int
var color: String
}
var myCar = new Car()
myCar.set {
speed = 5
color = "green"
}
我知道在 Groovy 等其他语言中也是可能的。我也知道我可以用这样的构造函数来做到这一点:
val myCar = new Car {
speed = 5
color = "green"
}
我对做同样事情的方法感兴趣,不是在对象构造上,而是在稍后,一旦对象已经创建
这就是我迄今为止一直在做的事情:
class Car (var speed: Int, var color: String) {
def set(f: (Car) => Unit) = {
f(this)
}
}
val myCar = new Car(5, "red")
myCar.set { c =>
c.speed = 12
c.color = "green"
}
但我不喜欢为每个属性编写 'c' var
关于我该怎么做或者是否有更简单的方法的任何想法?