是否可以使用for循环动态命名变量?例如:
t = {}
For i in ipairs(tablename) do
t.i = something
End
我的实际问题包括为wireshark解剖器动态创建protofields,但如果上述情况不可行,我怀疑protofield问题是否可能
答案 0 :(得分:2)
做t[i]
。这将使用值t
将表格i
)编入索引。
local t = {}
for i, _ in ipairs(othertbl) do
t[i] = something
end
(请注意,在Lua中,foo.bar
是foo["bar"]
的缩写。另请注意,字符串"123"
与数字123
不同)
答案 1 :(得分:-1)
我不能完全理解您的问题,但请尝试以下操作:
t = {}
for i in ipairs(tablename) do
_G["t"][i] = tablename[i];
end
或者,如果您的意思是(我认为您的意思是)创建包含数字的变量名称:
local tablename = {"a", "b"}
for i in ipairs(tablename) do
_G["t"..i] = tablename[i];
end
所以你有" t1"," t2"变量
_G [name]使用全局变量(至少在魔法符文中)。
如果_G [name]返回错误,请尝试使用setglobal(name)。