我正在阅读一个 Lua 代码文件,文件的最顶部包含:
1 | TradeSkillFrameReset = TradeSkillFrame_LoadUI; 2 | 3 | TradeSkillFrame_LoadUI = 函数() 4 | TradeSkillFrameReset(); ... 112| TradeSkillFrame_LoadUI = TradeSkillFrameReset; ... 114| 结尾;
他们在做作业的第一行:
TradeSkillFrameReset = TradeSkillFrame_LoadUI;
在代码文件的这一点上,他们将一个未声明的标识符 ( TradeSkillFrame_LoadUI
) 分配给一个未声明的变量 ( TradeSkillFrameReset
)。这在 Lua 中是否允许?
- 变量声明是隐式的吗?
- 是否所有未声明的标识符都假定为前向声明?
更令人困惑的是,第一个TradeSkillFrame_LoadUI
似乎做的是调用自己:
TradeSkillFrame_LoadUI = function()
TradeSkillFrameReset();
这怎么不是无限循环?
编辑:TradeSkillFrameReset
添加了对和的剩余引用TradeSkillFrame_LoadUI
。