Lua:自动创建表的方式?

我正在尝试将数据库的数据类别数据值加载到表格中进行进一步处理。每个数据类别应该拥有自己的表格。不幸地是,数据类别的数量在不同的数据库中不一致,因此我考虑根据存在的数据类别数量自动创建表格:

--categories是包含所有数据类别名称的表格
for a = 1, #categories, 1 do
temptable..a = {};
end

当然,这行不通,因为Lua试图将表格分配给变量而不是它的值。变量连接也不能通过这种方式实现。有没有办法让Lua自动创建表格?

点赞
用户438753
用户438753

记住,在 Lua 中,表可以包含表,因此为什么不简单地用这种方式呢?

例如:

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

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

会给你一个包含 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
    )

这可以通过以下方式访问:

for i,v in pairs(temptable.cat1) do
print(i,v)
end
2012-05-31 07:31:57