我不太确定这个名称的正确名称是什么,但是有没有办法在Scala中一次设置/更改一个对象的属性?(对象已初始化的位置)
我正在寻找那种东西:
sampleObject.{
name = "bob",
quantity = 5
}
Run Code Online (Sandbox Code Playgroud)
而不是:
sampleObject.name = "bob"
sampleObject.quantity = 5
Run Code Online (Sandbox Code Playgroud)
Scala有没有这样的功能?(它的正确用语是什么?)
没有我所知道的这种语法,而且我认为这是一个很好的理由.在Scala中,使用像这样的可变属性是非常不鼓励的.对于案例类,存在这样的特征,但是以不可变的方式存在.所有案例类都带有一个copy方法,允许您复制类实例,同时仅更改指定的字段.
case class Sample(name: String, quantity: Int, other: String)
scala> val sample = Sample("Joe", 2, "something")
sample: Sample = Sample(Joe,2,something)
scala> val sampleCopy = sample.copy(
name = "bob",
quantity = 5
)
sampleCopy: Sample = Sample(bob,5,something)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |