创建一个以字符串命名的表格。

我创建了许多字符串变量名称,并希望将这些名称用作表名,例如:

 sName1 = "test"
 sName2 = "test2"

 tsName1 ={} -- 希望这个变为 ttest ={}
 tsName2 ={} -- 希望这个变为 ttest2 = {}

我无法弄清楚如何使其工作,尝试了各种[]和.的组合,但始终会出现索引错误,任何帮助都将不胜感激。

点赞
用户1208078
用户1208078

你的问题有点模糊,但我假设你想创建基于字符串变量命名的表格。一种方法是动态地创建它们作为全局对象,如下所示:

local sName1 = "test"

-- 这会为新表格创建一个名称,并将其作为全局对象创建
local tblName = "t".. sName1
_G[tblName] = {}

-- 获取表格的引用,并向其中放置一些内容。
local ttest = _G[tblName]
table.insert(ttest, "asdf")

-- 这只是演示你可以使用引用来修改全局对象
print(_G[tblName][1])
2013-05-29 13:24:06
用户752976
用户752976

除了像 Mike 建议的那样使用 _G,您还可以将所有这些表放入另一个表中:

tables = { }
tables[sName1] = { }

虽然 _G 的工作方式与几乎所有表一样,但污染全局“命名空间”除了一些罕见的情况外并不特别有用,因此您最好使用常规表。

2013-05-29 14:00:55