两个模块相互要求 - 电晕

时间:2015-04-10 12:13:32

标签: module lua corona require

我有:“play.lua”和“menu.lua”并且它完美无缺。在“menu.lua”中:local play = require('play')。 我做了一个按钮,让你回到菜单,所以我写在“play.lua”:本地菜单= require('菜单'),这显示我错误。当我在play.lua中只需要'menu'时,每件事都可以吗? 那有什么问题? 我不能两个模块相互要求吗?

1 个答案:

答案 0 :(得分:2)

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

您需要重新构建代码以避免这种情况。例如,您可以将play中的共享代码提取到core而不是play中需要menu,而需要core来自{{1}}消除这个问题。