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

时间:2012-08-22 20:59:49

标签: variables loops automation lua

在我开始之前,我会说我是Lua的初学者,所以可能不知道所有正确的术语,但我会尽力解释我的目标。

我有一个包含其他表的表(data)。 首次创建data时,其中可以包含任意数量的表(我希望它在1到50之间)。

我想将每个表分配给它自己的变量。

如果我知道有多少个表,那么使用table1 = data[1]; table2 = data[2]等等就可以轻松实现。

我已经对data进行了计数,因此我知道有条目数,所以我想要做的是自动创建变量,给它们一个名称并为其分配相应的表。

所以我们说data包含10个表。然后我想要创建名为table1table2table3的变量等等。 table1应为data[1]table2应为data[2],依此类推。

我确定我应该创建一个循环,每次都有一个count=count+1来创建附加到变量的数字。

我遇到的问题是我不知道如何创建一个名为'table'+counttable1)的变量。

我如何一起加入2?

2 个答案:

答案 0 :(得分:7)

使用构造名称创建全局变量的方法是更新全局表_G

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

如,

Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> count = 3
> _G['table'..count] = 17
> = table3
17
> 

答案 1 :(得分:0)

你不能,很少有编程语言支持这个以及通过反射这样做的那些。

最简单的方法是保留你的桌子!您的所有表都已存储在那里,您可以使用数据[x]轻松引用特定的表 当你这样做时,你只能使用他们的索引来引用你的表。

相关问题