Lua教程-模块

Lua从5.1添加了对模块和包的支持,Lua模块的机构是一个表或者是函数,可以将公共的代码放在一个文件中,有利于代码的重用和降低耦合度。
可以采用require函数引入模块。

require函数

  • 格式
require ("模块名")

require "模块名"

采用之前一篇文档“Nginx结合Lua实现限流”中的示例来说明模块的引用。

  • 新创建一个文件splitutil.lua(字符串分割)
/** Created by Erick.
**  DateTime: 2019-1-4 16:59
**/
local _M = {}
function _M.split(str,delim)
    if type(delim) ~= "string" or string.len(delim) <= 0 then
        return
    end
    local start = 1
    local tab = {}
    while true do
        local pos = string.find(str,delim,start,true)
        if not pos then
            break
        end
        table.insert(tab,string.sub (str,start,pos-1))
        start = pos+string.len(delim)
    end
    table.insert(tab,string.sub(str,start))
    return tab
end
return _M

以上定义一个table表,然后定一个函数用于实现分割,注意方法的名称要用表名+点+名称,这样可以看做是面向对象,采用对象点的方式调用。

  • 新建main.lua,来引入splitutil.lua模块
local splitutil = require("splitutil")
local str1 = "hello-lua"
local splitStr = splitutil.split(str1 , "-")
print("------------" , splitStr[1])
print("------------" , splitStr[2])
------输出结果----------
------------	hello
------------	lua

注意:做为公共模块提供给外部使用的话,要保证安全,所以应避免全局变量的出现。


在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨香异境

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值