¿Puedes crear bloques de código anónimos en Lua?
lua local (3)
En lenguajes de programación como C, puede crear un bloque de código anónimo para limitar el alcance de las variables dentro del bloque. ¿Se puede hacer lo mismo con Lua?
Si es así, ¿cuál sería el equivalente Lua del siguiente código C?
void function()
{
{
int i = 0;
i = i + 1;
}
{
int i = 10;
i = i + 1;
}
}
La ejecución de una función anónima ocurre de la siguiente manera: (function(a,b) print(a+b) end)(1,4)
Emite 5.
Puede delimitar un bloque con la palabra clave do
& end
.
Referencia: Programación en Lua
Quieres usar do...end
. Del manual :
Un bloque puede delimitarse explícitamente para producir una declaración única:
stat ::= do block end
Los bloques explícitos son útiles para controlar el alcance de las declaraciones de variables. Los bloques explícitos también se usan a veces para agregar una declaración de
return
obreak
en el medio de otro bloque
function fn()
do
local i = 0
i = i + 1
end
do
local i = 10
i = i + 1
end
end