2

たとえば、モジュールをロードしましたが、このモジュールには「Table1」という名前のテーブルがあります。メインファイルには、「Table1」とまったく同じコピーにしたいテーブルがあります。そのテーブルの名前しかない場合、どうすればよいでしょうか。私がこのようにしようとしているとき

str = "Table1"  
t = str

私は明らかにテーブルの代わりに文字列を取得しますが、どうすればそのテーブルコンテンツのテーブルコンテンツを取得できますか?私が欲しいのは、どういうわけかこのコード行を作成できるようにすることです

t = 'Table1'

これと同等である

t = Table1
4

2 に答える 2

2

Lua のテーブルは非常に柔軟で重要なデータ型です。モジュールでさえテーブルであるほどです。モジュールに特定の名前のテーブルがあり、変数にその名前があることがわかっている場合は、[]演算子を使用してテーブルを取得します。

tablename = 'Table1' -- you get this from somewhere, assuming it's not fixed

require 'mymodule'
t = mymodule[tablename]

ただし、モジュールに特定の名前のテーブルが含まれていることを「知っている」ことを前提としているため、これはあまり良い方法ではありません。特定の標準名 (変更されない) でテーブルをエクスポートするモジュールをいつでも設計できます。

require 'mymodule'
t = mymodule.Table1 -- equivalent to mymodule['Table1']
于 2011-11-01T10:44:10.850 に答える