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
- El patrón: armar una
Mlocal, sumarle funciones, devolverla. - El estado privado (
items) se esconde en la clausura. - Quien llama ve solo lo que
Mexpone.
Palabras clave y builtins usados aquí
endfunctionlocalprintreturn
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.
Paso 2 de 2 en La biblioteca; paso 24 de 27 en Fundamentos del lenguaje.