使用lua实现php的var_dump()函数功能

习惯了php中的var_dump()函数,而如今写lua的时候总习惯使用var_dump()函数,于是就自己动手写了一个类似功能的var_dump()函数。


function var_dump(data, max_level, prefix)   

    if type(prefix) ~= "string" then   

        prefix = ""  

    end   

    if type(data) ~= "table" then   

        print(prefix .. tostring(data))   

    else  

        print(data)   

        if max_level ~= 0 then   

            local prefix_next = prefix .. "    "  

            print(prefix .. "{")   

            for k,v in pairs(data) do  

                io.stdout:write(prefix_next .. k .. " = ")   

                if type(v) ~= "table" or (type(max_level) == "number" and max_level <= 1) then   

                    print(v)   

                else  

                    if max_level == nil then   

                        var_dump(v, nil, prefix_next)   

                    else  

                        var_dump(v, max_level - 1, prefix_next)   

                    end   

                end   

            end   

            print(prefix .. "}")   

        end   

    end   

end