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

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


Lua教程-模块_第1张图片

你可能感兴趣的:(Lua,Lua基础教程)