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

dot*_*dot 2 lua

我有以下测试代码:

local luatable = {}
luatable.item1 = 'abc'
luatable.item2 = 'def'
Run Code Online (Sandbox Code Playgroud)

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

n = #someothertable
local luatable = {}

for i = 1, n do
  luatable.item..i = some value...
end
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

Mud*_*Mud 5

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

那就是

luatable['item'..i] = value
Run Code Online (Sandbox Code Playgroud)

因为table.name是更通用的索引语法的特殊情况简写table['name'].

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

luatable[i] = value
Run Code Online (Sandbox Code Playgroud)