【发布时间】:2016-07-20 01:52:53
【问题描述】:
我有一个 lua 项目,其中多个目录中指定的 lua 文件都在同一个根文件夹下,并带有一些依赖项。
有时我会遇到在加载时加载表时出现 nil 异常的问题,因为该表正在引用尚未初始化的表,例如:
Customer =
{
Type = CustomerTypes.Friendly
}
这会导致 CustomerTypes 出现 nil 异常,因为 CustomerTypes.lua 尚未加载。
我目前的解决方案是简单地在这些 lua 文件中调用全局函数来加载依赖脚本。
我想做的是预处理我的 lua 文件以查找所有依赖项,并在运行时按该顺序加载它们,而不需要在我的 lua 文件中调用函数或特殊语法来确定这一点(即预处理器将在程序上解决依赖关系)。
这是可以现实实现的吗?还有其他解决方案吗? (我遇到过一些,但不确定它们是否值得追求)。
【问题讨论】:
-
作为替代方案,考虑将依赖项设计为与require 兼容,并通过
require调用(通常以@987654324 的形式)实际“声明”文件本身中每个文件的每个依赖项@ 一起靠近文件顶部)。
标签: lua dependencies preprocessor