跳转至

模块


更新于 2024-01-03

模块定义

Lua 的模块是由变量、函数等已知元素组成的table
创建模块即创建一个table,并将需要的元素放入其中

Lua
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
-- file: module.lua 
-- 定义一个名为 module 的模块
module = {}
-- 定义一个常量
module.constant = "123"

-- 定义一个函数
function module.func()
    io.write(moudle.constant)
end

return module

模块加载

Lua 提供了一个名为 require 的函数用来加载模块
require 参数为模块名字,返回值为模块表

Lua
1
2
3
4
5
-- file: main.lua
-- 加载模块
local m = require("module")
-- 调用模块中的函数
m.func()

LUA_PATH

LUA_PATH是一个环境变量 Lua使用它来确定在执行require函数时查找模块的路径
使用package.path来查看或修改LUA_PATH的值

格式

以分号分隔的路径
每个路径都可以包含一个问号 Lua将在运行时将这个问号替换为require函数的参数

示例

如果LUA_PATH设置为/home/user/lua/?.lua;/usr/local/?.lua
那么执行 require("module")时
Lua将会依次查找/home/user/lua/module.lua/usr/local/module.lua

Lua
1
2
3
4
5
-- 打印当前的 LUA_PATH
print(package.path)  

-- 添加一个新的路径到 LUA_PATH
package.path = package.path .. ";/my/extra/path/?.lua"