Scala case class update value

Define the case class so that the second member is a var:

case class Stuff(name: String, var value: Option[String])

Now you can create an instance of Stuff and modify the second value:

val s = Stuff("bashan", None)

s.value = Some("hello")

However, making case classes mutable is probably not a good idea. You should prefer working with immutable data structures. Instead of creating a mutable case class, make it immutable, and use the copy method to create a new instance with modified values. For example:

// 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"))

Leave a Comment