有沒有辦法讓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