【问题标题】:Two modules require each other - corona两个模块相互需要 - 电晕
【发布时间】:2015-06-16 03:45:09
【问题描述】:
我有:“play.lua”和“menu.lua”,而且效果很好。在“menu.lua”中:本地播放 = require('play')。
我做了一个按钮让你回到菜单,所以我在“play.lua”中写道:local menu = require('menu') 并显示错误。当我在 play.lua 中只需要“菜单”时,一切都好吗?
那么问题是什么?
我不能两个模块相互要求吗?
【问题讨论】:
标签:
module
lua
coronasdk
require
【解决方案1】:
你可以有两个相互需要的模块;如果您尝试这样做,您可能会收到loop or previous error loading module 'X' 错误。当a 调用b 时,情况与递归函数相同,后者调用a:递归需要一些停止条件,否则它将无限期地继续。 Lua 作者实施了一项检查以检测 require 的这种情况并生成您看到的错误。
您需要重组代码以避免这种情况。例如,您可以将共享代码从 play 提取到 core 中,而不是从 menu 中要求 play,而是从它们两者中要求 core,这将消除问题。