typestar

case en Erlang

Matchea un valor contra patrones, en orden, como expresión.

%% case matches a value against patterns, in order, as an expression.
main(_) ->
    Board = [{3, idle}, {7, ringing}, {12, {fault, "wet pair"}}],
    [report(Line, State) || {Line, State} <- Board],
    ok.

report(Line, State) ->
    Note = case State of
        idle -> "free for traffic";
        ringing -> "attend now";
        {fault, Why} -> "out of service: " ++ Why;
        _ -> "unknown"
    end,
    io:format("Line ~p: ~s~n", [Line, Note]).

Cómo funciona

  1. case State of prueba cada brazo de patrón por turno.
  2. {fault, Why} ata desde adentro del valor matcheado.
  3. El case entero responde un valor atado a Note.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
398
Tokens
123
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 114 segundos.

Escribe este fragmento

Paso 3 de 4 en Coincidencia de patrones; paso 6 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →

case en otros lenguajes