Lua将语句写到字符串然后调用执行

1.代码

local code = "return 10 + 20"
local execute = load(code)
if execute then
    local result = execute()
    print(result) -- 这将打印 30
else
    print("Compilation failed.")
end

 注意:如果字符串里用到了模块,可能直接运行不了,需要将运行时所依赖的环境都加进去。

local code = "return ModuleA.getPara('startSeg')"
local env = { ModuleA = ModulePublicParas }
local execute = load(code, nil, nil, env)
print(execute())

 也可以使用全局的环境:

local execute = load(code, nil, nil, _G)

 

posted @ 2024-06-03 11:10  朱小勇  阅读(2)  评论(0编辑  收藏  举报