Lua:如何向表中添加多行

4

好的,我希望能快速生成一张相当大的表格。它应该类似这样:

table{
{1, 1, 1, 1},
{1, 1, 1, 1},
{1, 1, 1, 1},
}

只有表格会包含更多行和更多值。我知道可以使用table.insert()轻松地为单个行添加任意数量的值,但是否有办法添加整个新行而无需一行一行手动输入?


一个不完全重复的 http://stackoverflow.com/questions/13214926/lua-insert-multiple-variables-into-a-table。 - Bartek Banachewicz
2个回答

5
使用 for 循环。
t = { }
for i = 1,100 do
    table.insert(t, i) -- insert numbers from 1 to 100 into t
end

2D数组也非常简单

t = { }
for row = 1,20 do
    table.insert(t, { }) -- insert new row
    for column = 1,20 do
        table.insert(t[row], "your value here")
    end
end

你可以通过local current_row = t[row]来记住当前行,但在进行性能优化之前,请勿使用这些技巧!如果您认为这样更清晰地表达了目的,请仅将其用于可读性。

还要注意,(特别是在5.1及更新版本中的#),您可以直接将值分配给不存在的索引,并且它们将被添加。


4
你无需使用 table.insert:
t = {}
for row = 1,20 do
    t[row] = {}
    for column = 1,20 do
        t[row][column]= "your value here"
    end
end

在这种设置中,是否可以使用命名键而不是数字行/列索引?我该怎么做? - Max Well
@MaxWell,是的,只需相应地调整循环即可。请提出一个单独的问题,并附上您尝试实现的示例。 - lhf
谢谢,@lhf。我终于弄清楚如何设置了。现在我正在努力解决如何对其进行排序的问题。这是我在该问题上的原始帖子。https://stackoverflow.com/questions/73587448/sort-index-of-tables-based-on-value-for-a-key-in-each-table - Max Well

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接