我已经阅读了关于创建模块的 PIL 和ModulesTutorial,但我无法require()
正确使用它们。
这是我的设置:
-- File ./lib/3rdparty/set.lua
local ipairs = ipairs
module( "set" )
function newSet (t)
local set = {}
for _, l in ipairs(t) do set[l] = true end
return set
end
和:
-- File ./snowplow.lua
local set = require( "lib.3rdparty.set" )
module( "snowplow" )
local SUPPORTED_PLATFORMS = set.newSet { "pc", "tv", "mob", "con", "iot" }
然后,如果我运行snowplow.lua
:
lua: snowplow.lua:4: attempt to index local 'set' (a boolean value)
stack traceback:
snowplow.lua:4: in main chunk
[C]: ?
我在模块定义中做错了什么 - 布尔值到底是什么?return _M;
另外,如果我在底部附加 a set.lua
,那么一切都会开始工作 - 为什么?