如何用Lua 5.2递归引用两个模块实现长尾词疑问?

2026-04-01 20:011阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计293个文字,预计阅读时间需要2分钟。

如何用Lua 5.2递归引用两个模块实现长尾词疑问?

有办法吗?+ 两个Lua模块(我们称之为A和B)+ 每个模块使用另一个模块的功能,因此它们必须相互依赖+ 第三个模块(我们称之为C)可以使用A而不能是B,例如+C.lua:+ local A=require('A') + ...A.foo() + 可能的

有办法吗?

>两个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:

如何用Lua 5.2递归引用两个模块实现长尾词疑问?

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

本文共计293个文字,预计阅读时间需要2分钟。

如何用Lua 5.2递归引用两个模块实现长尾词疑问?

有办法吗?+ 两个Lua模块(我们称之为A和B)+ 每个模块使用另一个模块的功能,因此它们必须相互依赖+ 第三个模块(我们称之为C)可以使用A而不能是B,例如+C.lua:+ local A=require('A') + ...A.foo() + 可能的

有办法吗?

>两个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:

如何用Lua 5.2递归引用两个模块实现长尾词疑问?

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