lua anonymous

¿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.



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 o break 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