我有以下测试代码:
local luatable = {}
luatable.item1 = 'abc'
luatable.item2 = 'def'
我想知道如何更改它,以便我可以动态分配名称,因为我不知道我有多少“项目”。我想做这样的事情:(伪代码)
n = #someothertable
local luatable = {}
for i = 1, n do
luatable.item..i = some value...
end
有没有办法做到这一点?
我有以下测试代码:
local luatable = {}
luatable.item1 = 'abc'
luatable.item2 = 'def'
我想知道如何更改它,以便我可以动态分配名称,因为我不知道我有多少“项目”。我想做这样的事情:(伪代码)
n = #someothertable
local luatable = {}
for i = 1, n do
luatable.item..i = some value...
end
有没有办法做到这一点?
我想做这样的事情:
luatable.item..i = value
那将是
luatable['item'..i] = value
因为table.name
是更一般的索引语法的特殊情况速记table['name']
。
但是,您应该知道 Lua 表索引可以是任何类型,包括数字,因此在您的情况下,您很可能只需要:
luatable[i] = value
是的,正确的代码是
for i = 1, n do
luatable["item"..i] = some value...
end
回想一下,这luatable.item1
只是糖luatable["item1"]
。