在我开始之前,我会说我是Lua的初学者,所以可能不知道所有正确的术语,但我会尽力解释我的目标。
我有一个包含其他表的表(data
)。
首次创建data
时,其中可以包含任意数量的表(我希望它在1到50之间)。
我想将每个表分配给它自己的变量。
如果我知道有多少个表,那么使用table1 = data[1]; table2 = data[2]
等等就可以轻松实现。
我已经对data
进行了计数,因此我知道有条目数,所以我想要做的是自动创建变量,给它们一个名称并为其分配相应的表。
所以我们说data
包含10个表。然后我想要创建名为table1
,table2
,table3
的变量等等。 table1
应为data[1]
,table2
应为data[2]
,依此类推。
我确定我应该创建一个循环,每次都有一个count=count+1
来创建附加到变量的数字。
我遇到的问题是我不知道如何创建一个名为'table'+count
(table1
)的变量。
我如何一起加入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]轻松引用特定的表 当你这样做时,你只能使用他们的索引来引用你的表。