lua 模块与包(五)

摘要:
--====================1.定义模块===============--module.lua文件名--定义名为module={}的模块--定义常量模块。const=“这是一个常量”--定义函数functionmodule。fun1()io.writeend--定义本地函数localfunctionfun2()printendfunctionmodule。fun3()fun2()endreturnmodule 2。使用模块Lua提供一个名为require的函数来加载模块。

一.模块的介绍

  模块类似于1个封装库,从Lua 5.1 开始,Lua加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以API接口的形式在其他地方调用,用利于代码
的重用和降低代码的耦合度。

1.定义一个模块

---   lua的模块是由变量、函数等已知元素组成的table,因此创建1个模块就是创建1个table,把
--- 需要导出的常量、函数放入其中,最后返回这个table就行。
--  ================ 1.定义1个模块  ==============

-- module.lua 文件名
-- 定义一个名为module的模块

module ={};

-- 定义一个常量
module.constant="这是一个常量"

-- 定义一个函数
function module.fun1()
 io.write("这是一个公有函数")
end

-- 定义一个本地函数
local function fun2()
  print("这是一个私有函数")
end

function module.fun3()
 fun2()
end

return module

 2.使用一个模块

  Lua提供了一个名为require的函数用来加载模块。要加载一个模块,只需要简单地调用就可以了。

调用方法:
    require("<模块名>")
    require "<模块名>"

执行 require 后会返回一个由模块常量或函数组成的 table,
并且还会定义一个包含该 table 的全局变量
require("com.zpb.demo1.module")
 local m =  require("com.zpb.demo.module")    -- 也可以起个变量名

  print(module.constant);
  module.fun1();
  module.fun3();
  print(m.constant)

      

免责声明:文章转载自《lua 模块与包(五)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iOS zipzap读取压缩文件[Axure教程]0003.元件的触发事件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Luarocks 安装艰难过程

1.最好新建一个你自己的目录,然后把lua + Luarocks 都安装在这个文件夹下面,方便以后维护 2.安装lua环境 $ wget http://www.lua.org/ftp/lua-5.3.0.tar.gz  $ tar zxvf lua-5.3.0.tar.gz  $ cd lua-5.3.0  $ vi Makefile INSTALL_TO...

Nginx实现JWT验证-基于OpenResty实现

介绍 权限认证是接口开发中不可避免的问题,权限认证包括两个方面 接口需要知道调用的用户是谁 接口需要知道该用户是否有权限调用 第1个问题偏向于架构,第2个问题更偏向于业务,因此考虑在架构层解决第1个问题,以达到以下目的 所有请求被保护的接口保证是合法的(已经认证过的用户) 接口可以从请求头中获取当前用户信息 每个请求都有uuid用于标识 JWT(J...

lua basic

assert(condition) condition为nil或false,报错。反之正常执行。 collectgarbage(opt, ...) 手动这类GC是一件不太理想的事情,不管什么语言都是这样的,除非设计缺陷万不得已"collect" # 做一次完整的垃圾收集循环。"stop" # 停止垃圾收集器的运行。"restart" # 重启垃圾收集器的自...

lua 分割字符串

-- 参数:待分割的字符串,分割字符   -- 返回:子串表.(含有空串)   function split(str, split_char)           local sub_str_tab = {}     while true do                   local pos = string.find(str, split_cha...

Openresty常用指令和参数

--[[ 参考文档: https://www.nginx.com/resources/wiki/modules/lua/#nginx-api-for-lua Nginx Lua模块指令: Nginx共11个处理阶段,而相应的处理阶段是可以做插入式处理,即可插拔式架构; 另外指令可以在http、server、server if、locatio...

skywalking对nginx的支持

转载自博客:https://blog.csdn.net/qq_24267619/article/details/106622434 skywalking要支持nginx: skywalking对nginx的采集的agent插件是基于lua来编写的,所以要采集nginx,nginx安装的时候必须要支持lua插件 默认情况下Nginx不支持Lua模块,需要安...