Skip to content

Instantly share code, notes, and snippets.

@joaquinpf-ds
Created June 8, 2016 11:24
Show Gist options
  • Save joaquinpf-ds/9fa44ae0849955fa5dbb6b134319fdfe to your computer and use it in GitHub Desktop.
Save joaquinpf-ds/9fa44ae0849955fa5dbb6b134319fdfe to your computer and use it in GitHub Desktop.
Tests de mapas mutables e inmutables en Scala
object Application extends App {
// Mapa immutable con 'val'
val pepe = scala.collection.immutable.Map("k1" -> "v1", "k2" -> "v2")
// Compiler Error: Reassignment to val
// Es importante entender que como en el caso de abajo, se esta tratando
// de reasignar 'val' con el nuevo mapa, cosa que no puede hacerse por ser un 'val'
pepe -= "k1"
// Mapa immutable con 'var'
var pepe2 = scala.collection.immutable.Map("k1" -> "v1", "k2" -> "v2")
// Esto funciona, pero internamente lo que esta sucediendo es que la variable
// se esta reasignando con un mapa nuevo. Si bien estamos usando un 'var', el
// mapa de fondo sigue siendo immutable.
pepe2 -= "k1"
// Mapa mutable con 'val'
val pepe3 = scala.collection.mutable.Map("k1" -> "v1", "k2" -> "v2")
// Tenemos un 'val', pero como el mapa es mutable podemos cambiarlo. En ningun
// momento se intenta cambiar la referencia del 'val' en si, por lo que este
// caso funciona.
pepe3 -= "k1"
// Mapa mutable con 'var'
var pepe4 = scala.collection.mutable.Map("k1" -> "v1", "k2" -> "v2")
pepe4 -= "k1"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment