some none has create check scala option case-class

none - Valor de actualización de clase de caso Scala



scala option get (2)

Tengo una clase de caso con 2 miembros de String. Me gustaría actualizar el segundo miembro más adelante, así que primero creo una instancia con String y None y luego cargo los datos a la clase y me gustaría actualizar el segundo miembro con algún valor.

¿Cómo puedo hacerlo?


Clases de casos en Scala son preferiblemente inmutables. Use una clase regular para lo que está tratando de lograr, o copie su objeto de clase de caso a uno nuevo con el valor actualizado.


Defina la clase de caso para que el segundo miembro sea un var :

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

Ahora puedes crear una instancia de Stuff y modificar el segundo valor:

val s = Stuff("bashan", None) s.value = Some("hello")

Sin embargo, hacer que las clases de casos sean mutables probablemente no sea una buena idea. Deberías preferir trabajar con estructuras de datos inmutables. En lugar de crear una clase de caso mutable, haga que sea inmutable, y use el método de copy para crear una nueva instancia con valores modificados. Por ejemplo:

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