Lua的模块首先是一个Table,由变量,函数等元素组成,所以创建一个Lua的模块就是创建一个Table,然后将这个Table返回
-- 文件名为 module.lua -- 定义一个名为 module 的模块 -- module不是关键字 -- 文件名必须和Table名一致吗? module = {} -- 定义一个常量 module.constant = "这是一个常量" -- 定义一个函数 function module.func1() io.write("这是一个公有函数!\n") end -- local关键字,而且没有在module表中,外部不能访问这个函数 local function func2() print("这是一个私有函数!") end function module.func3() func2() end return module
使用require函数导入模块
-- 直接导入模块 require("module") print(module.constant) module.func3() -- 使用别名导入模块 local m = require("module") print(m.constant) m.func3()
可以使用C为Lua写包,当然C的代码要预先编译好,Lua以动态链接库的方式导入C包