Lua 创建具有字符串名称的表

Lua 创建具有字符串名称的表,lua,Lua,我已经创建了很多字符串变量名,我想使用这些名称作为表名,即: sName1 = "test" sName2 = "test2" tsName1 ={} -- would like this to be ttest ={} tsName2 ={} -- ttest2 = {} 我不知道如何让它工作,已经经历了[]和.'的各种组合,但在运行时,我总是会遇到索引错误,任何帮助都将不胜感激。您的问题有点模糊,但我假设您希望创建基于字符串变量命名的表。一种方法是将它们动态创建为全局对象,如下所

我已经创建了很多字符串变量名,我想使用这些名称作为表名,即:

 sName1 = "test"
 sName2 = "test2"

 tsName1 ={} -- would like this to be ttest ={}
 tsName2 ={} -- ttest2 = {}

我不知道如何让它工作,已经经历了[]和.'的各种组合,但在运行时,我总是会遇到索引错误,任何帮助都将不胜感激。

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

local sName1 = "test"

-- this creates a name for the new table, and creates it as a global object
local tblName = "t".. sName1
_G[tblName] = {}

-- get a reference to the table and put something in it.
local ttest = _G[tblName]
table.insert(ttest, "asdf")

-- this just shows that you can modify the global object using just the reference
print(_G[tblName][1])

除了使用Mike建议的
\u G
,您还可以将所有这些表放在另一个表中:


虽然
\u G
的工作方式几乎与每个表的工作方式相同,但污染全局“名称空间”除了极少数情况外并没有多大用处,使用常规表会更好。

如果您想这样做,那么几乎可以肯定您以错误的方式处理了问题。
tables = { }
tables[sName1] = { }