有人可以告诉我,是否可以在lua做这样的事情? 它使用模块文件包含使用单个lua标头的其他模块文件?
--main.lua
require "std"
local test = WIDGETS[0]
--std.lua
require "std.constants" -- this is the problem its local to this file only
require "std.functions" -- this is the problem its local to this file only
-std.constants.lua
WIDGETS =
{
NONE,
PANEL,
BUTTON
}
我需要做这样的事情,所以我不必输入std.constants.WIDGET [无论]
答案 0 :(得分:1)
您可以在local WIDGETS = std.constants.WIDGETS
之后添加第require "std"
行。然后,该文件中的所有函数都可以引用WIDGETS
而不会污染全局名称空间:
-- main.lua
require "std"
local WIDGETS = std.constants.WIDGETS
local test = WIDGETS[0]
...
每个文件只需执行一次。