1036

5 分钟

#Lua 的 require 函数

require (modname)

说明

加载指定模块。

首先检查 package.loaded,判断模块是否已经被加载:

  • 如果已经被加载,则返回 package.loaded[modname] 保存的值
  • 否则,尝试查找该模块的 加载器

该函数根据数组 package.searchers 里的 查找器函数 依次查找加载器:

  1. 第一个查找器尝试从 package.preload 中查找 package.preload[modname]
  2. 第二个查找器尝试从 package.path 中查找 Lua 库形式的加载器
  3. 第三个查找器尝试从 package.cpath 中查找 C 库形式的加载器
    • require("mylibs") 尝试加载 mylibs.so 中的 luaopen_mylibs 函数
  4. 第四个查找器尝试使用一体化加载器(多个子模块集成在一个 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)

>>> Establishing WebAssembly Runtime.

>>> Standby.

Powered by Shift.

#推荐阅读

require - Lua 5.4 Reference Manual

创建于 2025/10/4

更新于 2025/10/4