我有一个字符串,例如:
local func = "1 == 3"
如何将其转换为函数以执行并从另一个函数中获取结果?喜欢:
function CheckFunc(func)
local ret = functon() return func end
return ret
end
loadstring()
是您正在寻找的功能:)
在您的情况下,它将像这样使用:
local func = loadstring("return (1==3)")
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
注意:您应该使用@Kamiccololoadstring
代替我的wrap
在 Lua 5.1 中,您可以使用loadstring
,正如其他答案已经说过的那样:
local func = loadstring("return(1==3)")
在 Lua 5.2 中,最好使用load
local func = load("return(1==3)")