ファイルにいくつかの lua コードがあります。このコードの複数のクロージャ インスタンスを作成し、それぞれに異なる _ENV 上位値を設定したいと考えています。luaL_loadfileを使用してファイルをロードし、最初の上位値を異なるテーブルで N 回設定して、N 個のインスタンスを作成できます。しかし、これはファイルをN回ロードしてコンパイルしませんか?
ロードファイルがない場合を除いて、私がやりたいことと同等のluaは次のとおりです
func_list = {}
for i = 1, 10 do
local new_env = {hello=i, print=print}
func_list[i] = loadfile("Code.lua", "t", new_env)
end
for i = 1, 10 do
func_list[i]()
end
------ Code.lua ------
print(hello*hello)
これを行うより良い方法はありますか?