En Lua, el lenguaje no tiene soporte nativo para constantes, pero es posible simularlas mediante convenciones o técnicas específicas para definir valores inmutables. Esto es útil para garantizar que ciertos valores no se modifiquen en el programa.
Aunque Lua no incluye palabras clave como const
, las constantes se pueden definir utilizando variables globales o locales y adoptando convenciones como escribir el nombre en mayúsculas. También se puede emplear metatablas para hacer que los valores sean verdaderamente inmutables.
Se pueden declarar variables y tratarlas como constantes por convención:
local PI = 3.14159 -- Constante local
MAX_USERS = 100 -- Constante global (convención)
Las metatablas permiten restringir la modificación de un valor:
CONST = {}
setmetatable(CONST, {
__index = function(_, key)
error("Intento de acceso a un valor no existente: " .. key)
end,
__newindex = function(_, key, _)
error("No se pueden modificar las constantes: " .. key)
end
})
CONST.PI = 3.14159
print(CONST.PI)
-- CONST.PI = 4 -- Esto lanzará un error
local GRAVITY = 9.8
print("La gravedad es:", GRAVITY)
CONST = {}
setmetatable(CONST, {
__index = function(_, key)
error("Constante no encontrada: " .. key)
end,
__newindex = function(_, key, _)
error("No se puede modificar la constante: " .. key)
end
})
CONST.PI = 3.14159
print("El valor de PI es:", CONST.PI)
-- CONST.PI = 4 -- Esto generará un error
Método | Ventaja | Ejemplo |
---|---|---|
Variable local o global | Sencillo y eficiente |
local VALUE = 42
|
Metatablas | Garantiza inmutabilidad |
setmetatable({...}, {...})
|
Convenciones (nombres en mayúsculas) | Refleja la intención del programador |
MAX_COUNT = 10
|
Consulta más detalles sobre Lua en la documentación oficial:
Jorge García
Fullstack developer