-1

for ループを使用して変数に動的に名前を付けることは可能ですか? 次のようなもの:

t = {} 

For i in ipairs(tablename) do
   t.i = something
End

私の実際の問題は、wireshark ディセクタのプロトフィールドを動的に作成することですが、上記が不可能な場合、プロトフィールドの問題が可能になるとは思えません

4

2 に答える 2

-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] はグローバル変数として使用されます (少なくとも Runes of Magic では)。

_G[name] がエラーを返す場合は、代わりに setglobal(name) を試してください。

于 2014-11-24T16:03:15.133 に答える