使用标准相对路径方法来要求LUA文件 - 存在问题:尝试调用全局变量“myfunc”(一个nil值)

我需要调用另一个我编写的.lua文件中定义的LUA函数; 这是经典的C / C ++包含方法。

我尝试了以下内容:

(文件funcs.lua)
function myfuncarg1arg2)
.. dosomething
end

(文件main.lua)
package.path = package.path ..“;/ path / to / libs /?. Lua”
需要“funcs”
myfunc(1,2

需要有效,但是在执行时,我会收到此错误:

尝试调用全局'myfunc'(一个空值)

为什么? 提前致谢,

点赞
用户2259450
用户2259450

感谢大家的评论;我正在使用OpenResty / Nginx运行 LUA。

我通过直接导出函数来解决这个问题,我不知道这是否是首选方法,但我注意到许多较新的LUA模块都在使用它。

例如,我将代码更改如下:

文件 (funcs.lua)
local A = {}
function A.myfunc(arg1, arg2)
 ..做一些事情
end
return A

(文件 main.lua)
package.path = package.path .. ";/path/to/libs/?.lua"
funcs = require "funcs"
funcs.myfunc(1, 2)

这很好用,并且很好地通过手动导出每个函数来以一种类似OOP的方式进行。

2014-05-04 16:15:25