Lua语言学习:Lua 模块与包
模块类似于一个封装库,从 Lua 5.1 开始
模块
模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低代码耦合度。
我的 lua 版本
❯ lua
Lua 5.4.3 Copyright (C) 1994-2021 Lua.org, PUC-Rio
模块
- 定义
- 常量/成员
- 方法(public/private)
- 导出
# mod1
module = {}
-- 定义一个 module 常量
module.name = "mod1"
-- 定义一个 module 方法
function module.func1(...)
print('i am func1')
end
-- 内部用的方法
local function func2()
print('i am a private function')
end
-- 输出模块
return module
require 函数
Lua提供了一个名为
require
的函数用来加载模块。要加载一个模块,只需要简单地调用就可以了
.
├── app.lua
└── mod1.lua
0 directories, 2 files
local m1 = require("mod1")
print(m1.name)
m1.func1()
加载机制
对于自定义的模块,模块文件不是放在哪个文件目录都行,函数 require 有它自己的文件路径加载策略,它会尝试从 Lua 文件或 C 程序库中加载模块。
print(package.path)