在相同的(匿名)表中使用表键

我想从同一张表中使用一个键在匿名表内,例如:

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

就我所知,它应该返回以下表格:

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

然而,它只返回了 nil这是否可能,并且如何实现?

点赞
用户415823
用户415823

不行,你不能那么做。在你使用 a 的时候,表还没有被构造。Lua会寻找全局变量 a,因此你得到 nil

如果你想引用表中的键,它们必须先被定义。

local t = { a = 'One' }
t.b = t.a .. ' two'
2016-07-27 21:17:04
用户1442917
用户1442917

正如其他答案所说,你不能在构建table的过程中引用key,但你可以使用变量来存储你想要引用多次的值:

local a = "One"
local t = { a = a, b = a.." two" }
2016-07-27 21:26:16