Lua - 从一个字符串调用函数

根据我在此网站上阅读的内容,下面的代码应该是有效的。有好心人能指出我的错误在哪里吗?

我已经在代码中嵌入了更多的描述信息和打印返回值,希望让阅读更容易

问题出在代码无法运行并出现以下错误:

string:1 attempt to call nil
点赞
用户1303277
用户1303277

同时,“term”变量是什么,如果这是你的全部代码,那么“term”未被定义且为“null”)。

也就是说:要么“_G[fsel]”为“nil”,要么“fsel”为“nil”?

你确定在_G中有以fsel存储的名称声明的函数吗?

例如,在问题行之前调用“print(_G[fsel])”以查看它给出了什么。

2012-10-16 11:30:11
用户1749790
用户1749790

以下是最终可行解决方案:

local f = loadstring(str)
if f then
 setfenv(f, getfenv())
 f()
end

这替换了上面的几行代码:

print("正在加载函数 '"..fsel.."("..qty..")'")
func = loadstring(str)
print(func)
print("正在加载函数")
func()

同时添加了基本的加载函数错误处理。

2012-10-16 23:21:29