使用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