在表名中使用 for 循环整数

我正在尝试使用 for 循环整数插入表格,Lua 中该如何实现呢?

我的尝试:

local table1 = {}
local table2 = {}
local table3 = {}

for i = 1, 3, 1 do
   table.insert("table" .. i, 1, "ok")
end
点赞
用户3574628
用户3574628

将表格放置到另一个表格中。

local tables = {{}, {}, {}}

for i = 1, 3, 1 do
  table.insert(tables[i], 1, "ok")
end
2018-02-10 21:08:10
用户7556173
用户7556173

你的方式是通过索引键获取一个表格。你可以构建一个类似于下面的表格(就像你的 _G["table" .. i]):

local t = {
    ["table" .. 1] = {};
    ["table" .. 2] = {};
    -- ...
}

如果你不构建本地表格,那么你必须获取本地表格的名称。你可以尝试使用 _ENV(5.3)或 getenvf(5.1)来获取它,但我猜这可能不是一个好主意。

2018-02-11 03:34:03
用户2226988
用户2226988

你可以使用 debug 库来查看函数中的局部变量,但我不建议这样做。

否则,如果你想要列出局部变量,你需要手动创建一个表:

local table1 = {}
local table2 = {}
local table3 = {}

local tables = { table1 = table1, table2 = table2, table3 = table3 }

for i = 1, 3, 1 do
   table.insert(tables["table" .. i], 1, "ok")
end
2018-02-12 17:45:18