是否可以使用for循環來動態命名變量?一些諸如:for循環中動態創建的變量
t = {}
For i in ipairs(tablename) do
t.i = something
End
我實際的問題是由一個Wireshark的剝離動態創建protofields的,但如果以上是不可能的,我懷疑protofield問題將有可能
是否可以使用for循環來動態命名變量?一些諸如:for循環中動態創建的變量
t = {}
For i in ipairs(tablename) do
t.i = something
End
我實際的問題是由一個Wireshark的剝離動態創建protofields的,但如果以上是不可能的,我懷疑protofield問題將有可能
只要做t[i]
。這將索引表(t
)的值爲i
。
local t = {}
for i, _ in ipairs(othertbl) do
t[i] = something
end
(請注意,在Lua,foo.bar
是短期的foo["bar"]
。還要注意,串"123"
是從該數123
不同)
我完全不明白您的問題,但嘗試以下操作:
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 [名字]被用於全局變量(至少在魔法符文中)。
如果_G [name]返回錯誤,請改爲嘗試setglobal(name)。
我有示例表是一個多dementional表,〜37條目。我希望能夠遍歷表格併爲每個條目創建一個變量,這些變量稍後將用於創建wireshark protofield。所以最後,我會有一個變量t.1到t.37,然後可以用在解剖器 – Hls 2014-11-24 16:20:04
'_G [「t」]'很愚蠢。只要做't',即't [i]'。在香草Lua中也沒有'setglobal'這樣的函數。 – 2014-11-24 18:01:56