运行一段字符串作为 lua 代码仅调用函数名

我正在为一个处理输入事件的辅助函数创建一个动态回调表。 当执行 functionTable[1](testString) 时,我希望使 a(testString) 执行,或者允许通过字符串直接运行它。

functionTable = {}
testString = "atad atad atad"

function a(param)
    print(param)
end

functionTable[1] = "a"

exec(functionTable[1].."(testString)")

我应该怎么做?

(针对 Lua 5.1)

点赞
用户12568711
用户12568711

您可以使用 load() 函数执行字符串:

functionTable = {}
testString = "atad atad atad"

function a(param)
    print("hello " .. param)
end

functionTable[1] = "a"

load(functionTable[1].."(testString)")()
2020-09-07 05:17:03