在同一个(匿名)table 中使用 table 键

Use table key inside same (anonymous) table

我想在同一个 table 中使用匿名 table 的密钥,如下所示:

loadstring( [[return {
  a = "One",
  b = a.." two"
}]] )

在我看来,这个应该return以下table:

{ a = "One", b = "One two" }

然而,它只是 returns nil这可以做到吗?怎么做?

不,你不能那样做。在您使用 a 时,尚未构建 table。 Lua 寻找一个全局变量 a,这就是你得到 nil 的原因。

如果要引用 table 中的键,必须先定义它们。

local t = { a = 'One' }
t.b = t.a..' two'

正如 所说,您不能引用正在构造的 table 中的键,但您可以使用变量来保存要多次引用的值:

local a = "One"
local t = { a = a, b = a.." two" }