2

例如我加载了一个模块,这个模块中有一个名为“Table1”的表。在主文件中,我有一个表,我想成为“Table1”的完全相同的副本。那么,如果我只有该表的名称,我该怎么做。当我试图这样做时

str = "Table1"  
t = str

我显然得到了一个字符串而不是表格,那么我怎样才能得到一个表格内容呢?我想要的是能够以某种方式制作这行代码

t = 'Table1'

相当于这个

t = Table1
4

2 回答 2

2

ifstr是全局变量的名称,_G[str]用于获取其值。

于 2011-11-01T10:36:26.133 回答
2

Lua 中的表是一种非常灵活且重要的数据类型。如此之多,甚至模块都是表格。如果您知道模块中有一个给定名称的表,并且您在变量中有它的名称,只需使用[]运算符获取表:

tablename = 'Table1' -- you get this from somewhere, assuming it's not fixed

require 'mymodule'
t = mymodule[tablename]

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

require 'mymodule'
t = mymodule.Table1 -- equivalent to mymodule['Table1']
于 2011-11-01T10:44:10.850 回答