Lua:自动创建表格的方法?

Zer*_*y99 0 lua creation lua-table

我正在尝试将数据库的数据类别的数据值加载到表中以供进一步处理.每个数据类别都应该有自己的表.遗憾的是,数据类别的数量不一致,因DB而异,因此我考虑根据当前数据类别的数量自动创建表:

--categories is a table containing the names of all data categories
for a = 1, #categories, 1 do 
temptable..a = {}; 
end
Run Code Online (Sandbox Code Playgroud)

这当然不起作用,因为Lua尝试将表分配给变量而不是其值.这种方式也不可能进行变量连接.有没有办法让Lua自动创建表格?

Jan*_*e T 5

请记住在Lua表中可以包含表格,所以为什么不这样做呢

例如

cat = {'cat1','cat2','cat3'}

temptable = {}
for i,v in pairs(cat) do
temptable[v] = {1+ i,2 + i,3 + i}
end
Run Code Online (Sandbox Code Playgroud)

会给你一张包含temptable的表格

[cat2] => table
    (
       [1] => 3
       [2] => 4
       [3] => 5
    )
[cat1] => table
    (
       [1] => 2
       [2] => 3
       [3] => 4
    )
[cat3] => table
    (
       [1] => 4
       [2] => 5
       [3] => 6
    )
Run Code Online (Sandbox Code Playgroud)

哪个可以使用

for i,v in pairs(temptable.cat1) do
print(i,v)
end
Run Code Online (Sandbox Code Playgroud)

  • 并且记住全局环境是`_G`,所以你可以做`_G [v]`而不是`temptable [v]`,它们将显示为全局变量而不是`temptable`的成员. (2认同)