Переопределение переменной с тем же именем допустимо в Lua? - PullRequest
0 голосов
/ 19 сентября 2018

Я новичок в Lua, и я только что узнал, что следующий код является допустимым в Lua.

local abc = 123
local abc = 345
print(abc)

Есть ли разница между приведенным выше и следующим?

local abc = 123 
abc = 345
print(abc)

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Есть разница.Первый код имеет две локальные переменные, тогда как второй имеет только одну.Это можно обнаружить, например, с помощью библиотеки отладки.Сравните вывод luac -l для обоих сценариев.

0 голосов
/ 19 сентября 2018

Каждое выполнение локального оператора определяет новые локальные переменные отметьте это обе переменные имеют отдельную идентичность, но при использовании одного и того же имени будет скрыта первая

local abc =  123
local function abc1()
  print(abc)
end

local abc = 345
local function abc2()
  print(abc)
end

print(abc1()) -- 123
print(abc2()) -- 345
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...