我有一个字符串,如:
local func = "1 == 3"
如何将其转换为执行函数并从另一个函数中获取结果?像:
function CheckFunc(func)
local ret = functon() return func end
return ret
end
答案 0 :(得分:8)
loadstring()
是您正在寻找的功能:)
在您的情况下,它将被用作:
local func = loadstring("return (1==3)")
答案 1 :(得分:6)
local func = "1 == 3"
function wrap(s)
return loadstring("(function() return "..s.." end)()")
end
funcWrapped = wrap(func)
if funcWrapped() then
print "One eqauls Three"
else
print "One doesn't equal Three"
end
输出
One doesn't equal Three
注意:您应该在loadstring
wrap
代替我的{{1}}
答案 2 :(得分:4)
在Lua 5.1中,您可以使用loadstring
,因为其他答案已经说过:
local func = loadstring("return(1==3)")
在Lua 5.2中,最好使用load
local func = load("return(1==3)")