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"))
print(123)