lua - loadfile 立刻执行,我想不通为什么

我原本以为像这样做:

local f = assert(loadfile('/var/www/widgets/widgetlookup.lua'))('13')

只是把 widgetlookup.lua 的内容加载到变量“f”中,然后运行代码,我可以这样做:

 f()

然而,文件一旦加载就会执行。我知道是因为 widgetlookup.lua 打印带有结果的字符串。最终,我需要将脚本的结果捕获到一个变量中

您能告诉我哪里错了吗?如果您需要查看 widgetlookup.lua 的内容,请告诉我,我会发布。只是不想在问题中添加不必要的信息。

谢谢。

编辑1

我将我的代码更改为这样:

local f = assert(loadfile('/var/www/widgets/widgetlookup.lua'))
local p = f(13)

现在代码会等到我按下第二行才会运行...但是我需要知道如何将脚本的输出捕获为一个变量....

print(p) 现在返回一个空值。

点赞
用户107090
用户107090

你在函数调用的结尾处加上了 ('13')

你希望得到以下代码:

local f = assert (loadfile('/var/www/widgets/widgetlookup.lua'))
2016-11-30 18:25:04