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 模块与包的主要内容,如果未能解决你的问题,请参考以下文章

Lua 模块与包 调用c程序.so文件

雷林鹏分享:Lua 模块与包

lua 模块与包

lua的模块与包

Lua从青铜到王者基础篇第八篇:Lua表和模块与包

python之基础篇——模块与包