typestar

Records en Erlang

Una tupla nombrada con azúcar de campos en compilación.

%% A record is a named tuple with compile-time field sugar.
-record(line, {number, state = idle, pair}).

main(_) ->
    L = #line{number = 7, pair = "red-white"},
    io:format("Line ~p on ~s pair~n",
              [L#line.number, L#line.pair]),
    io:format("Default state: ~p~n", [L#line.state]),

    Ringing = L#line{state = ringing},
    io:format("Now: ~p~n", [Ringing#line.state]),

    #line{number = N} = Ringing,
    io:format("Matched number ~p~n", [N]).

Cómo funciona

  1. -record(line, {...}) declara campos, algunos con defecto.
  2. L#line.number lee; L#line{state = ringing} copia y actualiza.
  3. #line{number = N} = R matchea campos por nombre.

El intento, en números

Líneas
14
Caracteres a escribir
425
Tokens
126
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 126 segundos.

Escribe este fragmento

Paso 2 de 4 en Formas de datos; paso 16 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →

Records en otros lenguajes