【发布时间】:2012-06-14 00:48:59
【问题描述】:
我在一个文件中有一些 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)
有没有更好的方法来做到这一点?
【问题讨论】:
标签: lua closures lua-api lua-5.2