Tuplas y pares :ok en Elixir
La convención de tuplas {:ok, ...} y {:error, ...}, hablada aquí por una bóveda terca.
# A tuple is a fixed-size bundle; {:ok, value} and {:error, reason}
# are the shapes every Elixir library speaks.
defmodule Vault do
def open("6-2-8"), do: {:ok, "deed to the tin mine"}
def open(_guess), do: {:error, :wrong_combination}
end
{:ok, prize} = Vault.open("6-2-8")
IO.puts("inside: #{prize}")
{:error, reason} = Vault.open("1-1-1")
IO.puts("no luck: #{reason}")
Cómo funciona
Vault.opendevuelve{:ok, ...}para la combinación correcta y{:error, ...}para el resto.{:ok, prize} = ...coincide con la forma del éxito y vincula el contenido en una línea.- La llamada fallida coincide con
{:error, reason}, y el átomo se imprime como texto plano.
Palabras clave y builtins usados aquí
defdefmoduledoend
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 374
- Tokens
- 86
- Ritmo de tres estrellas
- 75 tpm
Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 69 segundos.
Paso 2 de 3 en Listas y tuplas; paso 8 de 27 en Fundamentos del lenguaje.