Require
原型
function require (name)
if not package.loaded[name] then
local loader = findloader(name)
if loader == nil then
error("unable to load module"..name)
end
package.loaded[name] = true
local res = loader(name)
if res ~= nil then
package.loaded[name] = res
end
end
return package.loaded[name]
end
可以看出来,如果一个模块已经加载过,将不会被再次加载。
顺序
1.package.loaded
2.package.path
3.package.loadlib
module
它将我们的模块表加入到全局变量中,那么模块的主程序块就有一个独占的环境,这样访问同一模块的其他公共实体时,不需要限定它名称。
module ("aModule")
-- 相当于
local name = "aModule" -- 定义模块名
local M = {}