Structs en Elixir
defstruct le da al taller de kayaks una forma fija con valores por defecto y claves verificadas.
defmodule Kayak do
# A struct is a map with a fixed field list and compile-time checks.
defstruct model: "Petrel", length_ft: 17, rudder: false
end
defmodule Boathouse do
def tour do
stock = %Kayak{}
custom = %Kayak{model: "Auk", rudder: true}
IO.puts("stock build: #{stock.model}, #{stock.length_ft} ft")
IO.puts("custom build: #{custom.model}, rudder? #{custom.rudder}")
%Kayak{model: m} = custom
IO.puts("matched model #{m}")
end
end
Boathouse.tour()
Cómo funciona
defstructlista los campos y sus valores por defecto; el struct vive en su módulo.%Kayak{}toma todos los valores por defecto;%Kayak{model: "Auk"}sobreescribe al construir.%Kayak{model: m} = customcoincide con patrones como un map que conoce su tipo.
Palabras clave y builtins usados aquí
defdefmoduledefstructdoend
El intento, en números
- Líneas
- 19
- Caracteres a escribir
- 457
- Tokens
- 112
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 96 segundos.
Paso 3 de 3 en Maps y structs; paso 12 de 27 en Fundamentos del lenguaje.