Одна вещь, которая, кажется, отличает Lua от языков, к которым я привык, состоит в том, что важно, какой заказ вы поместили в объявления переменных и функций. В функции вы не можете получить доступ к локальным переменным, которые были объявлены после функции. Например:Есть ли способ разместить локальные функции в любом порядке в Lua?
local function foo()
return bar
end
local bar = 4
print(foo()) -- prints nil instead of 4
То же самое верно, если вы пытаетесь получить доступ к локальной функции из функции, объявленной перед ней.
В некоторых случаях это может сработать, если вы просто осторожны с объявлением вещей в правильном порядке. Но что, если у вас есть две или более функции, которые все должны называть друг друга? Должны ли функции быть глобальными или есть ли способ сделать это с помощью локальных функций?
Oh! После тестирования этого кода я узнал, что функции с идентификаторами не всегда объявляются глобально. – Hydro
Что вы подразумеваете под идентификаторами? –
Действительные имена идентификаторов -> 'a',' b', 'foo' и' bar' – Hydro