使用标准相对路径方法需要LUA文件 - 问题:尝试调用全局'myfunc'(零值)

时间:2014-05-02 14:12:44

标签: lua

我需要调用另一个我的.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)

为什么? 提前谢谢,

1 个答案:

答案 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风格手动导出每个函数是很好的。