Я новичок в Lua, и я только что узнал, что следующий код является допустимым в Lua.
local abc = 123 local abc = 345 print(abc)
Есть ли разница между приведенным выше и следующим?
local abc = 123 abc = 345 print(abc)
Есть разница.Первый код имеет две локальные переменные, тогда как второй имеет только одну.Это можно обнаружить, например, с помощью библиотеки отладки.Сравните вывод luac -l для обоих сценариев.
luac -l
Каждое выполнение локального оператора определяет новые локальные переменные отметьте это обе переменные имеют отдельную идентичность, но при использовании одного и того же имени будет скрыта первая
local abc = 123 local function abc1() print(abc) end local abc = 345 local function abc2() print(abc) end print(abc1()) -- 123 print(abc2()) -- 345