Я знаю, что есть другие подобные темы, но я не смог найти прямой ответ на мой вопрос.lua variables scope
Предположим, у вас есть такая функция, как:
function aFunction()
local aLuaTable = {}
if (something) then
aLuaTable = {}
end
end
Для aLuaTable переменной внутри, если заявление, он по-прежнему местный право ?. В основном, я спрашиваю, если я впервые определяю переменную как локальную, а затем я использую ее снова и снова, любое количество раз будет оставаться локальным для остальной части жизни программы, как это работает именно ?.
Кроме того, я прочитал это определение для глобальных переменных Lua:
Любая переменная не в определенном блоке, как говорят, в глобальном масштабе. Все, что доступно в глобальном масштабе, доступно для всех внутренних областей.
Что это означает не в определенном блоке ?, я понимаю, что если я «объявляю» переменную в любом месте, она всегда будет глобальной, это неверно ?.
Извините, если вопросы слишком просты, но из Java и объектива-c, lua очень странно для меня.
У меня не было много XP с lua, но насколько я знаю, переменная будет в пределах видимости внутри этой функции - она выходит за рамки вне функции. Любые переменные, объявленные вне тела функции (определенный блок), считаются находящимися в глобальной области видимости и доступны из любого места в этом сценарии lua. – Charleh