如何在Lua中自动创建变量?

我想将包含其他表的表(data)分配给它们各自的变量。如果我知道有多少表,那么使用 table1 = data[1]; table2 = data[2] 这样就很容易了。但是我不知道表的数量,我想自动创建变量,给它们取一个名字,并将相应的表分配给它们。例如,如果 data 包含 10 个表,我希望创建名为 table1table2table3 等的变量。table1 应该是 data[1]table2 应该是 data[2],依此类推。我确定我应该创建一个循环,每次循环都有一个 count=count+1 以创建附加到变量的数字。但我的问题是:我不知道如何创建一个名为 'table'+counttable1)的变量。我应该如何将两者连接起来?

点赞
用户1451576
用户1451576

你不能这样做,很少有编程语言支持此功能,而支持的语言通过反射实现。

最简单的方法是保留你的表格集合!所有的表格都已经存储在那里了,你可以通过使用 data[x] 轻松地引用特定的表格。这样做的好处是你可以只使用表格的索引来引用它们。

2012-08-22 21:19:28
用户33252
用户33252

创建一个由构造名称定义的全局变量的方法是更新全局表 _G

_G['table'..count] = data[count]

例如:

Lua 5.1.4  版权所有(C) 1994-2008 Lua.org, PUC-Rio
> count = 3
> _G['table'..count] = 17
> = table3
17
>
2012-08-22 21:32:51