两个模块相互需要 - 电晕

Two modules require each other - corona

我有:"play.lua" 和 "menu.lua",而且效果很好。在 "menu.lua" 中:本地播放 = 需要('play')。 我制作了一个带您返回菜单的按钮,所以我在 "play.lua" 中写道:local menu = require('menu') 并显示错误。当我在 play.lua 中只需要 'menu' 时,一切正常吗? 那么问题是什么? 我不能两个模块互相要求吗?

您可以有两个相互需要的模块;如果您尝试这样做,您可能会遇到 loop or previous error loading module 'X' 错误。当 a 调用 b 时,递归函数的情况与调用 a 时的递归函数相同:递归需要一些停止条件,否则它将无限期地继续。 Lua 作者实施了检查以检测 require 的这种情况并生成您看到的错误。

您需要重构代码以避免这种情况。例如,您可以将 play 中的共享代码提取到 core 中,而不是从 menu 中要求 play,而是从两者中要求 core,这将消除问题。