typestar

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

  1. defstruct lista los campos y sus valores por defecto; el struct vive en su módulo.
  2. %Kayak{} toma todos los valores por defecto; %Kayak{model: "Auk"} sobreescribe al construir.
  3. %Kayak{model: m} = custom coincide con patrones como un map que conoce su tipo.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

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

← Anterior Siguiente →

Structs en otros lenguajes