编辑代码

a = function(tab)
        local list = {}
        for k, _ in pairs(tab) do
                list[#list + 1] = k
        end
        return list
end

local tabs = 0
 
local function Print(num, data)
    print(string.rep("    ", num)..tostring(data))
end
function PrintTb(tb, tbname)
    if not tb then return end
    if tbname then
        print(tabs, tbname.." = {")
    else
        Print(tabs, "{")
    end
    
    tabs = tabs + 1
    for k, v in pairs(tb) do
        if type(tb[k]) == "table" then
            PrintTb(tb[k], k)
        elseif type(k) == "string" or type(k) == 'number' then
            local str = ""
            if type(k) == "number" then
                str = "["..tostring(k).."]"
            else
                str = tostring(k)
            end
            
            if type(tb[k]) == "function" then
                Print(tabs, str.." --(This is function)")
            elseif type(tb[k]) == "string" then
                Print(tabs, str.." = \""..tb[k].."\"")
            else
                Print(tabs, str.." = "..tostring(tb[k]))
            end
        end         
    end
    tabs = tabs - 1
    Print(tabs, "}")
end

local tb = {
   

    name = "xiaoming",
    age = 18,
    list = {
        str1 = "aaa",
        str2 = 1234,
        t = {12, 23, 45, 45, 6546, "cccc", "wwwww", 2.50}
    },
    {  
        a = "xxx",
        b = "***",
        c = 1234,
    }
}


 
print(123)

print(PrintTb(a(tb), "tb"))


-- PrintTb(tb, "tb")

print(123)