lua学习更新

可变参数

之前写了个调试的时候打印参数的方法,如下

com_util.dump = function(...)
    local args = {...}
    for _, v in pairs(args) do
        print(v)
    end
end

使用过程中发现一个问题,打印的变量经常为nil,但lua的table如果有nil,在pairs就会continue过去(ipairs直接break),导致我传入了4个变量,但只打印了3个,不知道哪个是哪个。之后改动如下

com_util.dump = function(...)
    local n = select('#', ...)
    local v
    for i = 1,n do
        v = select(i, ...)
            ngx.say(v)
        end
    end
end

select('#',...) 输出可变参数长度
select('n ',...) 获取第n个可变参数,这样就能打印nil了

posted @ 2021-06-07 18:37  文仔菜菜  阅读(62)  评论(0)    收藏  举报