如何将字符串转换为表格

例如,我载入了一个模块,在这个模块里有个名为“Table1”的表。在主文件中,我有一个表,我想要它完全复制“Table1”。 如果我只有那个表名,我该怎么做呢? 当我试图像这样做时

str = "Table1"
t = str

显然我得到的是一个字符串而不是表,那我怎么才能获取那个表呢?我想要的是能够使这行代码

t = 'Table1'

等价于这行代码

t = Table1

原文链接 https://stackoverflow.com/questions/7964850

点赞
stackoverflow用户107090
stackoverflow用户107090

如果 str 是一个全局变量的名称,使用 _G[str] 来获取它的值。

2011-11-01 10:36:26
stackoverflow用户221509
stackoverflow用户221509

Lua 中的表格是非常灵活和重要的数据类型。事实上,即使模块也是表格。如果您知道模块中有一个表格,并且您有它的名称在一个变量中,只需使用 [] 操作符即可获取表格:

tablename = 'Table1' -- 您从某个地方获取这个名称,假设它不是固定的
require 'mymodule'
t = mymodule[tablename]

然而,这不是一个很好的方法,因为它假设您“知道”模块包含一个给定名称的表格。您可以总是设计模块,以通过给定的标准名称(不变)导出表格:

require 'mymodule'
t = mymodule.Table1 -- 等同于 mymodule['Table1']
2011-11-01 10:44:10