typestar

Una línea y defp en Elixir

Dos formas de función: el cuerpo de una línea con do: y el ayudante privado que solo su módulo puede llamar.

defmodule Tides do
  # A one-line body rides on the def itself with do:
  def high?(feet), do: feet >= 9.5

  def report(feet) do
    IO.puts("#{feet} ft -- #{advice(feet)}")
  end

  # defp makes a helper invisible outside the module
  defp advice(feet) do
    if high?(feet), do: "stay off the causeway", else: "safe to cross"
  end
end

Tides.report(11.2)
Tides.report(4.0)

Cómo funciona

  1. def high?(feet), do: feet >= 9.5 pone un cuerpo de una sola expresión en la misma línea del def.
  2. report interpola la lectura y le deja el veredicto a advice.
  3. defp advice es privada: adentro del módulo es una función común; afuera no existe.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
16
Caracteres a escribir
354
Tokens
77
Ritmo de tres estrellas
80 tpm

Al ritmo de tres estrellas de 80 tokens por minuto, este intento toma unos 58 segundos.

Escribe este fragmento

Paso 2 de 3 en Módulos y funciones; paso 2 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →