#Lua 的 require 函数
require (modname)
说明
加载指定模块。
首先检查 package.loaded,判断模块是否已经被加载:
- 如果已经被加载,则返回
package.loaded[modname]保存的值 - 否则,尝试查找该模块的 加载器
该函数根据数组 package.searchers 里的 查找器函数 依次查找加载器:
- 第一个查找器尝试从 package.preload 中查找加载器
package.preload[modname] - 第二个查找器尝试从 package.path 中查找 Lua 库形式的加载器
- 第三个查找器尝试从 package.cpath 中查找 C 库形式的加载器
require("mylibs")尝试加载mylibs.so中的luaopen_mylibs函数
- 第四个查找器尝试使用一体化加载器(多个子模块集成在一个 C 库中):从 package.cpath 中查找 C 库形式的加载器
require("mylibs.xx")尝试加载mylibs.so中的luaopen_mylibs_xx函数require("mylibs.yy")尝试加载mylibs.so中的luaopen_mylibs_yy函数require("mylibs.zz")尝试加载mylibs.so中的luaopen_mylibs_zz函数
参数
modname- 要加载的模块名
返回值
- 返回模块的返回值
#示例
print("预加载:")
for k, v in pairs(package.preload) do
print(k, v)
end
print("\nLua 库:", package.path)
print("\nC 库:", package.cpath)