LUA的一些工具备份

Posted adoontheway

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LUA的一些工具备份相关的知识,希望对你有一定的参考价值。

table.unpack遇到的问题

做了个中转的服务, socket+json 传递数据,
通过 {...} 封装不定参数然后 json.encode 传递到其他服务器,
然后其他服务器 json.decode之后再通过 table.unpack 解出之前 {...} 里面的参数,
如果这里是 table 还好,如果这里面是 n 个整型数据的话,后面会多了个 .0
例如, 1 会被转成 1.0,这会带来一些麻烦。
调查了许久,发现不是 json 导致的,而是在 table.unpack 导致的,
所以根据网上找到的方法,重写了一个 unpack 的方法以及一个判断数组的方法,如下:


function util.unpack(t,i)
    i = i or 1
    if t[i] ~= nil then
        if type(t[i]) == "number" and t[i]%1 == 0 then
            t[i] = t[i] >> 0
        end
        return t[i],util.unpack(t,i+1)
    end
end

--检查是否是数组类型
function util.checkArray(a)
    if type(a) ~= "table" then return false end
    local count = 0
    for k,v in pairs(a) do
        if type(k) ~= "number" then return false end
        count = count + 1
    end

    for i=1,count do
        if not a[i] and type(a[i]) ~= "nil" then return false end
    end

    return true
end

以上是关于LUA的一些工具备份的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 4.6 的备份代码片段

lua5.1.5.dll放在哪

如何混淆lua代码?

nginx+lua+ngx_lua_waf实现waf功能

创建自己的代码片段(CodeSnippet)

安装nginx+ngx_lua支持WAF防护功能