Lua在一行中有多个本地人

时间:2017-02-25 00:40:35

标签: lua local-variables

假设我们有以下代码:

local x = 1
local x, y = 2, 3

我知道x在第二行之后会变为2,但是,该行上的本地是否会创建一个新的x,或者使用之前的那个?

1 个答案:

答案 0 :(得分: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 (Lua 5.3)为此脚本显示的信息:

locals

x部分显示三个变量,其中两个{{1}}具有相同的结束范围位置。