Lua   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了推荐的方法是在Lua 5.2中以递归方式引用2个模块大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
有办法吗?

>两个Lua模块(我们称之为A和B)
>每个模块使用另一个模块的功能,因此它们必须相互要求
>第三个模块(我们称之为C)可以使用A而不是B,例如

C.lua:

local A = require 'A'

-- ...

A.foo()

>可能有另一个模块D需要B而不是A和/或E需要A和B.
> A和B以及它们的成员都不应该添加到全局命名空间中.
>避免使用模块和setfenv函数(在Lua 5.2中不推荐使用)

相关:Lua – how do I use one lib from another?(注意:此解决方案不处理循环依赖关系.)

解决方法

我找到了一个很简单的方法:

A.lua:

local A = {}
local B

function A.foo()
    B = B or require 'B'
    return B.bar()
end

function A.baz()
    return 42
end

return A

B.lua:

local B = {}
local A

function B.bar()
    A = A or require 'A'
    return A.baz()
end

return B

大佬总结

以上是大佬教程为你收集整理的推荐的方法是在Lua 5.2中以递归方式引用2个模块全部内容,希望文章能够帮你解决推荐的方法是在Lua 5.2中以递归方式引用2个模块所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。