Estrutura de Salto Goto
A estrutura de salto Goto é uma construção de controle de fluxo disponível em algumas linguagens de programação, incluindo Lua. Essa estrutura permite que o programa desvie incondicionalmente para uma determinada posição no código identificada por um rótulo (label).
local function foreach(t, callback)
if type(t) ~= 'table' then
goto exit
end
local size = #t
if size == 0 then
goto exit
end
local key = 1
::verify::
if size >= key then
goto increment
else
goto exit
end
::increment::
callback(key, t[key])
key = key + 1
goto verify
::exit::
end
local meuArray = {
"Primeiro elemento",
"Segundo elemento",
"Terceiro elemento",
"Último elemento",
}
foreach(meuArray, function(key, value)
print(key, value)
end)
Warning
O uso da estrutura de salto é geralmente desencorajado e considerado uma prática de programação ruim.