如何在lua表中动态命名元素

时间:2013-08-14 20:46:29

标签: lua

我有以下测试代码:

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

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

n = #someothertable
local luatable = {}

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

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:5)

  

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

那将是

luatable['item'..i] = value

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

但是,您应该知道Lua表索引可以是任何类型,包括数字,所以在您的情况下,您可能只是想要:

luatable[i] = value

答案 1 :(得分:1)

是的,正确的代码是

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

回想一下,luatable.item1只是luatable["item1"]的糖。