typestar

Actualizar maps en Elixir

Actualizaciones inmutables: cada cambio al marcador devuelve un map nuevo y deja el original en paz.

# Maps never mutate: every update hands back a new map.
score = %{player: "June", points: 40, streak: 2}

leveled = %{score | points: score.points + 10}
IO.inspect(leveled, label: "after | update")

bumped = Map.put(leveled, :streak, leveled.streak + 1)
IO.inspect(bumped, label: "after put")

IO.puts("the original still says #{score.points}")

Cómo funciona

  1. %{score | points: ...} reescribe una clave existente; rechaza claves que el map no tiene.
  2. Map.put fija streak a partir del valor anterior sobre la copia más nueva.
  3. La última línea demuestra que score nunca cambió.

El intento, en números

Líneas
10
Caracteres a escribir
344
Tokens
84
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 72 segundos.

Escribe este fragmento

Paso 2 de 3 en Maps y structs; paso 11 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →