lua 模块与包
Posted guomengkai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lua 模块与包相关的知识,希望对你有一定的参考价值。
Lua 的模块是由变量、函数等已知元素组成的 table
-- 文件名为 module.lua
-- 定义一个名为 module 的模块
module = {}
-- 定义一个常量
module.constant = "这是一个常量"
-- 定义一个函数
function module.func1()
io.write("这是一个公有函数!
")
end
local function func2()
print("这是一个私有函数!")
end
function module.func3()
func2()
end
return module
require 函数
Lua提供了一个名为require的函数用来加载模块
require("<模块名>")
或者
require "<模块名>"
-- test_module.lua 文件
-- module 模块为上文提到到 module.lua
require("module")
print(module.constant)
module.func3()
加载机制
require 用于搜索 Lua 文件的路径是存放在全局变量 package.path 中,当 Lua 启动后,会以环境变量 LUA_PATH 的值来初始这个环境变量。
C 包
与Lua中写包不同,C包在使用以前必须首先加载并连接。Lua在一个叫loadlib的函数内提供了所有的动态连接的功能
local path = "/usr/local/lua/lib/libluasocket.so"
-- 或者 path = "C:\windows\luasocket.dll",这是 Window 平台下
local f = assert(loadlib(path, "luaopen_socket"))
f() -- 真正打开库
以上是关于lua 模块与包的主要内容,如果未能解决你的问题,请参考以下文章