我有:“play.lua”和“menu.lua”并且它完美无缺。在“menu.lua”中:local play = require('play')。 我做了一个按钮,让你回到菜单,所以我写在“play.lua”:本地菜单= require('菜单'),这显示我错误。当我在play.lua中只需要'menu'时,每件事都可以吗? 那有什么问题? 我不能两个模块相互要求吗?
答案 0 :(得分:2)
你可以有两个相互需要的模块;如果您尝试这样做,可能会出现loop or previous error loading module 'X'
错误。当a
调用b
调用a
时,情况与递归函数相同:递归需要一些停止条件,否则它将无限期地继续。 Lua作者实施了检查以检测require
的这种情况并生成您看到的错误。
您需要重新构建代码以避免这种情况。例如,您可以将play
中的共享代码提取到core
而不是play
中需要menu
,而需要core
来自{{1}}消除这个问题。