Lua 5.4 如何调用声明为字符串的函数

我需要调用一个声明为字符串的函数

比如 local abc = "function x() print('math.sqrt(25)') end"

我尝试了 load(abc),没有错误但是也没有打印任何东西,还尝试了 print(load(abc)),但是它返回的只是 function: 0000000000ebcea0

我进行了其他的尝试,但是似乎没有合适的方法解决我的问题(或者我就是太菜了)

点赞
用户2858170
用户2858170

请阅读手册...

如果没有语法错误,load 返回编译的代码块作为一个函数。

如果您想要调用该函数,请调用它。

local abc = "function x() print('math.sqrt(25)') end"

local loadedFunction = load(abc)
loadedFunction()

或者简单地

load(abc)()

当然,您应该检查 load 是否成功。

如果您想让某些事情发生,您可能也应该调用已被加载函数定义的函数。

load(abc)()
x()
2021-01-15 12:13:43