如何在Lua表中动态命名元素。

我有以下测试代码:

local luatable = {}
luatable.item1 = 'abc'
luatable.item2 = 'def'

我想知道如何更改它,以便我可以动态分配名称,因为我不知道有多少“项”。 我想做这样的事情: (伪代码)

n =#someothertable
local luatable = {}

for i = 1,n do
  luatable.item..i =某个值...
end

有没有办法这样做?

点赞
用户107090
用户107090

是的,正确的代码为

for i = 1, n do
  luatable["item"..i] = some value...
end

请记住,luatable.item1只是luatable ["item1"]的简写。

2013-08-14 21:01:11
用户501459
用户501459

我想要做的事情是这样的:luatable.item..i = value

那么应该是这样的:

luatable['item'..i] = value

因为 table.name 是更通用的索引语法 table['name'] 的特例缩写。

不过,你应该知道 Lua 表索引可以是任何类型,包括数字,因此在你的情况下,你最有可能只需要:

luatable[i] = value
2013-08-14 21:32:11