【发布时间】:2013-02-11 16:09:08
【问题描述】:
好的,所以我希望快速生成一个相当大的表。看起来像这样的东西:
table{
{1, 1, 1, 1},
{1, 1, 1, 1},
{1, 1, 1, 1},
}
只有表会包含更多的行,以及这些行中的更多值。我知道使用 table.insert() 我可以轻松地将我需要的任意数量添加到单行中,但是无论如何我也可以添加全新的行而无需全部输入?
【问题讨论】:
好的,所以我希望快速生成一个相当大的表。看起来像这样的东西:
table{
{1, 1, 1, 1},
{1, 1, 1, 1},
{1, 1, 1, 1},
}
只有表会包含更多的行,以及这些行中的更多值。我知道使用 table.insert() 我可以轻松地将我需要的任意数量添加到单行中,但是无论如何我也可以添加全新的行而无需全部输入?
【问题讨论】:
使用for 循环。
t = { }
for i = 1,100 do
table.insert(t, i) -- insert numbers from 1 to 100 into t
end
二维数组也很简单
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 和更新版本中,# 尤其时髦)您可以直接将值分配给不存在的索引,它们将被添加。
【讨论】:
你不需要使用table.insert:
t = {}
for row = 1,20 do
t[row] = {}
for column = 1,20 do
t[row][column]= "your value here"
end
end
【讨论】: