有没有办法让Lua中的某个函数可以从项目中的任何模块访问而无需首先需要它?lua中的全局函数
类似:
module(..., package.seeall);
function globFoo()
print('global foo called');
end
,并从其他somwhere叫,像主
--main
globFoo();
,而不需要它?
有没有办法让Lua中的某个函数可以从项目中的任何模块访问而无需首先需要它?lua中的全局函数
类似:
module(..., package.seeall);
function globFoo()
print('global foo called');
end
,并从其他somwhere叫,像主
--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脚本之间创建隐式排序,这使得很难知道哪个脚本使用哪些内容)。但你可以做到。
的如何做到这一点的例子:
在global.lua(其中全局函数所在):
globalFunction1 = function(params)
print("I am globalFunction1")
end
在调用文件,caller.lua:
globalFunction1(params) -- This will call the global function above
为什么你会这么想? – delnan 2012-08-10 18:26:49
因此,我可以在我的项目中的任何地方都可以访问某些功能,而不必经过(不管它是否温和)需要它的不便。 – ZachLHelms 2012-08-10 18:30:54