推薦的方法是有辦法有有2+模塊遞歸地稱對方在Lua 5.2
- 兩個Lua模塊(我們姑且稱之爲
A
和B
) - 每個模塊使用功能,從其他,所以他們必須
require
彼此 - 第三個模塊(我們稱之爲
C
)可以使用A
而不是B
例如
C.lua
:
local A = require 'A'
-- ...
A.foo()
- 可能有另一個模塊
D
需要B
但不A
和/或E
同時需要A
和B
- 既不
A
也不B
也不其成員應添加到全局名稱空間。 - 避免使用
module
和setfenv
功能(不建議使用在Lua 5.2)
相關:Lua - how do I use one lib from another?(注:這個解決方案不能處理循環依賴)
從這樣的函數內調用'require'有沒有什麼壞處?我只見過它在頂層使用。 – finnw
[參考手冊](http://www.lua.org/manual/5.1/manual.html#pdf-require)中沒有關於它的警告,所以我認爲它是安全的。 –
你可以在代碼中的任何地方使用'require'。例如,我經常使用這個習慣用法在文件中給定的點啓動RemDebug:'如果某些條件需要'remdebug.engine'.start()end' –