0

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

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

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

如果我知道有多少张桌子,那么这很容易使用table1 = data[1]; table2 = data[2]等等。

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

因此,假设data包含 10 个表。table1然后我想要创建名为,table2等的变量table3table1应该是data[1]table2应该是data[2]等等。

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

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

我如何将2个一起加入?

4

2 回答 2

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
> 
于 2012-08-22T21:32:51.083 回答
-1

你不能,很少有编程语言支持这一点,那些通过反射来支持的语言。

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

于 2012-08-22T21:19:28.110 回答