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 を記述する必要があるのは好きではありません
どうすればそれができるか、またはもっと簡単な方法があるかどうかについてのアイデアはありますか??