首页 > 解决方案 > Lua 5.4 调用声明为字符串的函数

问题描述

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

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

我试过 load(abc)没有错误,但没有打印任何内容并print(load(abc))返回function: 0000000000ebcea0

我又做了一次尝试,但似乎没有什么适合我的情况(或者我可能只是不好)

标签: lua

解决方案


请阅读说明书...

如果没有语法错误,则 load 将编译后的块作为函数返回

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

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

local loadedFunction = load(abc)
loadedFunction()

或者干脆

load(abc)()

当然,您应该检查加载是否实际成功。

如果您希望发生某些事情,您可能还应该调用已由您加载的函数定义的函数。

load(abc)()
x()

推荐阅读