有没有办法
- 两个 Lua 模块(我们称它们为
A
andB
) - 每个模块都使用另一个模块的功能,因此它们必须
require
相互 - 第三个模块(我们称之为
C
)可以使用A
但不能B
使用
C.lua
:
local A = require 'A'
-- ...
A.foo()
- 可能有另一个模块
D
需要B
但不需要A
和/或E
同时需要A
和B
- 既不应该
A
也不B
应该将它们的成员添加到全局命名空间中。 - 避免使用
module
andsetfenv
函数(在 Lua 5.2 中已弃用)
相关:Lua - 我如何使用另一个库?(注意:此解决方案不处理循环依赖。)