lua的模块是由变量,函数等已知元素组成的table,因此创建一个模块很简单,就是创建一个table,然后把需要导出的常量,函数放入其中,最后返回这个table就行。
例:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21-- 文件名为module.lua
-- 定义一个名为module的模块
module = {}
-- 定义一个常量
module.constant = "这是一个常量"
-- 定义一个函数
function module.func1()
io.write("这是一个公有函数!")
end
local function func2()
print("这是一个私有函数!")
end
function module.func3()
func2()
end
return module
由上可知,模块的结构就是一个table结构,因此可以像操作调用table里的元素那样来操作调用模块里的常量或变量
require函数
lua提供了一个名为require的函数来加载模块,要加载一个模块,只要简单的调用就就可以了
例;1
require("<模块名>")
或者1
require "<模块名>"
执行require后会返回一个由模块常量或函数组成的table,并且还会定义一个包含table的全局变量1
2
3
4
5
6
7-- test_module.lua
-- module 模块为上文提到的module.lua
require("module")
print(module.constant)
module.func3()
以上代码执行结果为:1
2这是一个常量
这是一个私有函数!
或者给加载的模块定义一个别名变量,方便调用:1
2
3
4
5
6
7
8-- test_module2.lua 文件
-- module 模块为上文提到的module.lua
-- 别名变量 m
local m = require("module")
print(m.constant)
m.func3()