有没有办法在Lua中拥有一个可以从项目中的任何模块访问而无需首先需要它的函数?
类似的东西:
module(..., package.seeall);
function globFoo()
print('global foo called');
end
并从其他地方调用,如主
--main
globFoo();
不需要它?
答案 0 :(得分:5)
模块只是一个Lua脚本。你可以做任何你想做的事;您甚至不必在模块脚本中调用module
。实际上,module
是generally considered harmful these days,这就是它在Lua 5.2中被弃用的原因。
真的,这只是简单地移动你的代码:
function globFoo()
print('global foo called');
end
module(..., package.seeall); --Module created after global function
所以是的,您可以让模块修改全局表。我非常建议你不要(因为它在Lua脚本之间创建了隐式排序,这使得很难知道哪个脚本使用哪些东西)。但你可以做到。
答案 1 :(得分:0)
如何做到这一点的示例:
global.lua中的(全局函数所在的位置):
globalFunction1 = function(params)
print("I am globalFunction1")
end
在调用文件中,调用者.lua:
globalFunction1(params) -- This will call the global function above