No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Inmutabilidad

7/36
Recursos

Aportes 6

Preguntas 2

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

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