使用相同名称重新声明变量在Lua中是合法的吗?

Zac*_*Lee 3 lua

我是Lua的新手,我刚刚发现以下代码在Lua中是合法的.

local abc = 123
local abc = 345
print(abc)
Run Code Online (Sandbox Code Playgroud)

以上和以下之间有什么区别吗?

local abc = 123 
abc = 345
print(abc)
Run Code Online (Sandbox Code Playgroud)

wsh*_*sha 5

每次执行本地语句都会定义新的局部变量,检查这 两个变量是否具有单独的标识,但使用相同的名称将隐藏第一个变量

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

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

print(abc1()) -- 123
print(abc2()) -- 345
Run Code Online (Sandbox Code Playgroud)