码迷,mamicode.com
首页 > 其他好文 > 详细

lua 模块与包

时间:2020-07-15 15:31:12      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:print   windows   lua   不同   path   定义   pac   soc   return   

Lua 的模块是由变量、函数等已知元素组成的 table

-- 文件名为 module.lua
-- 定义一个名为 module 的模块
module = {}
 
-- 定义一个常量
module.constant = "这是一个常量"
 
-- 定义一个函数
function module.func1()
    io.write("这是一个公有函数!\n")
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 模块与包

标签:print   windows   lua   不同   path   定义   pac   soc   return   

原文地址:https://www.cnblogs.com/guomengkai/p/13305152.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!