bas*_*han 23 scala option case-class
我有一个包含2个String成员的case类.我想稍后更新第二个成员,所以首先我用String和None创建一个实例,然后我将数据加载到类中,并希望用某个值更新第二个成员.
我该怎么做?
Jes*_*per 53
定义案例类,以便第二个成员是var:
case class Stuff(name: String, var value: Option[String])
Run Code Online (Sandbox Code Playgroud)
现在您可以创建一个实例Stuff并修改第二个值:
val s = Stuff("bashan", None)
s.value = Some("hello")
Run Code Online (Sandbox Code Playgroud)
但是,使案例类可变可能不是一个好主意.您应该更喜欢使用不可变数据结构.而不是创建可变的案例类,使其不可变,并使用该copy方法创建具有修改值的新实例.例如:
// Immutable Stuff
case class Stuff(name: String, value: Option[String])
val s1 = Stuff("bashan", None)
val s2 = s1.copy(value = Some("hello"))
// s2 is now: Stuff("bashan", Some("hello"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21012 次 |
| 最近记录: |