No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Scala básico

Curso de Scala básico

Carlos Daniel Sanchez

Carlos Daniel Sanchez

Inmutabilidad

7/36
Recursos

Aportes 6

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Resumen:

var: Declarar variables mutables
val: Declarar variables inmutables (Constantes)
def: Declarar funciones (Son inmutables también)

Maravilloso!

Inmutabilidad

Un dato mutable puede cambiar en el tiempo

Un dato inmutable no puede cambiar en el futuro

var x = 1
var x: Int = 1
x = 2 // mutated

val y = 1
y = 2
// error reassignment to val

def z = 1
z = 2
// value Z= is not a member of object $iw

¿Por qué es importante?

En programación funcional, evitaremos siempre los datos mutables (de ser posible).

La razón principal es que la mutabilidad va a dificultar razonar sobre el código (¿Has visto datos mutables en una ecuación matemática?)

¿No es esto ineficiente?

Sí, porque hay más uso de memoria

No, porque simplifica mucha de la carga cognitiva en un sistema

Solo en caso de optimización.

La mutabilidad debería usarse cuando la eficiencia que ganamos agregándola es mayor que la complejidad cognitiva que se genera en el código. Es decir, en muy pocos casos

Dejo algunas ventajas que en mi experiencia aporta el manejo de valores inmutables

  • Una ves que se crea un objeto, no se puede alterar.
    • Hace nuestro código mucho más predecible: Porque somos más cociente de donde se producen los cambios de estado.
  • Facilita crear funciones puras.
  • Facilita usar threads/concurrencia: esto se debe al punto anterior.

Como entro a esa pestaña para poder poner scala?

-Variables : (var) -> mutables
-Valores: (val) -> inmutables
-Definiciones: (def) -> return Unit o AnyVal