Maps en Elixir
Un registro de exoplaneta leído de cuatro maneras: punto, corchetes, Map.get y un patrón.
# A map literal; atom keys get the key: value shorthand.
planet = %{name: "Kepler-62f", radius: 1.41, habitable: true}
IO.puts("name: #{planet.name}")
IO.puts("radius: #{planet[:radius]} Earths")
IO.puts("moons: #{Map.get(planet, :moons, "unknown")}")
# Matching on a partial shape pulls fields out by name.
%{name: n, habitable: h} = planet
IO.puts("#{n} habitable? #{h}")
Cómo funciona
%{name: ..., radius: ...}usa la forma corta de claves de átomo.- El punto exige la clave presente;
planet[:radius]yMap.gettoleran ausencias, uno con valor por defecto. %{name: n, habitable: h} = planetcoincide con parte de la forma e ignora el resto.
El intento, en números
- Líneas
- 10
- Caracteres a escribir
- 375
- Tokens
- 94
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 75 segundos.
Paso 1 de 3 en Maps y structs; paso 10 de 27 en Fundamentos del lenguaje.