typestar

Módulos en Lua

Un módulo es una tabla que un archivo devuelve; require la cachea.

-- A module is just a table a file returns; here built inline.
local inventory = (function()
  local M = {}
  local items = {}

  function M.add(name)
    items[#items + 1] = name
  end

  function M.list()
    return table.concat(items, ", ")
  end

  return M
end)()

inventory.add("rope")
inventory.add("lodestone")
print("Carrying: " .. inventory.list())

Cómo funciona

  1. El patrón: armar una M local, sumarle funciones, devolverla.
  2. El estado privado (items) se esconde en la clausura.
  3. Quien llama ve solo lo que M expone.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
336
Tokens
78
Ritmo de tres estrellas
65 tpm

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

Escribe este fragmento

Paso 2 de 2 en La biblioteca; paso 24 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →