typestar

El operador de coincidencia en Elixir

Tres coincidencias: desestructurar una tupla, partir una lista y fijar un valor ya vinculado.

# = is a match, not an assignment: the shape on the left must fit the
# data on the right, and any bare names in it get bound.
{lat, lon} = {44.8, -68.7}
IO.puts("buoy anchored at #{lat}, #{lon}")

[flagship | escorts] = ["Puffin", "Skua", "Tern"]
IO.puts("#{flagship} leads; #{Enum.join(escorts, " and ")} follow")

# The pin operator ^ matches against a bound value instead of rebinding.
tide = "ebb"
{^tide, knots} = {"ebb", 2.5}
IO.puts("#{tide} current at #{knots} knots")

Cómo funciona

  1. {lat, lon} = {44.8, -68.7} ajusta la forma de la izquierda y vincula los dos nombres.
  2. [flagship | escorts] parte la flota en su cabeza y la lista del resto.
  3. ^tide fija la vinculación existente: la coincidencia afirma el valor en vez de revincular.

El intento, en números

Líneas
12
Caracteres a escribir
477
Tokens
107
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 86 segundos.

Escribe este fragmento

Paso 1 de 3 en Coincidencia de patrones; paso 4 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →