两个模块相互需要 - 电晕
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
,这将消除问题。
我有:"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
,这将消除问题。