Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lua 如何将表定义中的项分配给同一表中的另一项?_Lua_Lua Table - Fatal编程技术网

Lua 如何将表定义中的项分配给同一表中的另一项?

Lua 如何将表定义中的项分配给同一表中的另一项?,lua,lua-table,Lua,Lua Table,我试图将表的花括号定义中的一个项分配给先前定义的另一个项。但Lua表示,一旦在其定义中引用该表,就无法找到该表本身 下面是我试图实现的一个例子: local t = { a = 1, b = 2, c = t.a + t.b } 一旦接近t.a,Lua将无法找到t并返回错误 在t中定义c时,如何引用t.a和t.b而不离开花括号定义?很尴尬,但是: local t do local a = 1 local b = 2 t = {a, b, c =

我试图将表的花括号定义中的一个项分配给先前定义的另一个项。但Lua表示,一旦在其定义中引用该表,就无法找到该表本身

下面是我试图实现的一个例子:

local t = {
    a = 1,
    b = 2,
    c = t.a + t.b
}
一旦接近t.a,Lua将无法找到t并返回错误

在t中定义c时,如何引用t.a和t.b而不离开花括号定义?

很尴尬,但是:

local t
do
    local a = 1
    local b = 2

    t = {a, b, c = a + b}           
end

print(t.c) -- 3
如果没有do/end块,a和b变量将在t之外可见


据我所知,没有直接的方法来引用a和b,除非前面的例子中有1个变量存在,或者表构造完成后有2个变量存在。

正如你在问题中所说的,你不能

所以,前面定义的不是表构造函数中的概念

因此,不能引用语句结尾之前代码中显示的局部变量t。t将绑定到先前声明的变量或全局名为t的变量