我需要调用另一个我的.lua文件中定义的LUA函数;从另一个。所以,我想要的是经典的C / C ++包含方法。 我尝试了以下内容:
(file funcs.lua)
function myfunc(arg1, arg2)
..dosomething
end
和
(file main.lua)
package.path = package.path .. ";/path/to/libs/?.lua"
require "funcs"
myfunc(1, 2)
要求效果很好,但在执行时我收到此错误:
attempt to call global 'myfunc' (a nil value)
为什么? 提前谢谢,
答案 0 :(得分:1)
谢谢大家的评论;我在OpenResty / Nginx下运行LUA。
我通过直接导出函数解决了,我不知道这是否是首选方法,但我注意到许多较新的LUA模块使用了它。 例如,我更改了代码如下:
file (funcs.lua)
local A = {}
function A.myfunc(arg1, arg2)
..dosomething
end
return A
(file main.lua)
package.path = package.path .. ";/path/to/libs/?.lua"
funcs = require "funcs"
funcs.myfunc(1, 2)
这很好用,并且以一种OOP风格手动导出每个函数是很好的。