有没有办法在 Lua 中拥有一个可以从项目中的任何模块访问的函数,而无需首先要求它?
就像是:
module(..., package.seeall);
function globFoo()
print('global foo called');
end
并从其他地方调用它,比如 main
--main
globFoo();
不需要它?
最佳答案
一个模块只是一个 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 脚本之间创建隐式排序,这使得很难知道哪个脚本使用了哪些东西)。但你可以做到。
关于function - lua中的全局函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11907169/