假设我们有以下代码:
local x = 1
local x, y = 2, 3
我知道
x
在第二行之后将变为2,但是,该行上的本地会创建新的x
还是在之前使用? 最佳答案
它们将是两个不同的局部值:第一个将被阴影化并且不可访问,因为第二个将在同一块中以相同的名称创建。这是此脚本luac -l -l
(Lua 5.3)显示的信息:
main <local.lua:0,0> (4 instructions at 00697ae8)
0+ params, 3 slots, 1 upvalue, 3 locals, 3 constants, 0 functions
1 [1] LOADK 0 -1 ; 1
2 [2] LOADK 1 -2 ; 2
3 [2] LOADK 2 -3 ; 3
4 [2] RETURN 0 1
constants (3) for 00697ae8:
1 1
2 2
3 3
locals (3) for 00697ae8:
0 x 2 5
1 x 4 5
2 y 4 5
upvalues (1) for 00697ae8:
0 _ENV 1 0
locals
部分显示具有两个x
的三个变量,它们的作用域范围相同。关于lua - Lua在一行中有多个本地人,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42450568/