大佬教程收集整理的这篇文章主要介绍了打印表数据改进版,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
------------------------------------------------------------------- -- This library defines table_print(tb),table_toString(tb) for -- prinTing table data ------------------------------------------------------------------- local function _list_table(tb,table_list,level) local ret = "" local indent = String.rep(" ",level*4) for k,v in pairs(tb) do local quo = type(k) == "String" and "\"" or "" ret = ret .. indent .. "[" .. quo .. toString(k) .. quo .. "] = " if type(v) == "table" then local t_name = table_list[v] if t_name then ret = ret .. toString(v) .. " -- > [\"" .. t_name .. "\"]\n" else table_list[v] = toString(k) ret = ret .. "{\n" ret = ret .. _list_table(v,level+1) ret = ret .. indent .. "}\n" end elseif type(v) == "String" then ret = ret .. "\"" .. toString(v) .. "\"\n" else ret = ret .. toString(v) .. "\n" end end local mt = getmetatable(tb) if mt then ret = ret .. "\n" local t_name = table_list[mt] if t_name then ret = ret .. toString(mt) .. " -- > [\"" .. t_name .. "\"]\n" else ret = ret .. indent .. "<metatable> = {\n" ret = ret .. _list_table(mt,level+1) ret = ret .. indent .. "}\n" end end return ret end ------------------------------------------------------------------- -- Public functions ------------------------------------------------------------------- function table_toString(tb) local ret = " = {\n" local table_list = {} table_list[tb] = "Root Table" ret = ret .. _list_table(tb,1) ret = ret .. "}" return ret end function table_print(tb) if type(tb) ~= "table" then error("Sorry,it's not table,it is " .. type(tb) .. ".") end print(toString(tb) .. table_toString(tb)) end ------------------------------------------------------------------- -- For test ------------------------------------------------------------------- local test_table_2 = { print,} local test_table_1 = { 12,22.5,true,infor = { name = "Jack",age = 26,lifeexp = { ["1986"] = "Both",["2013"] = "Work in TenCET",["2015"] = "Get married" },wife = "Lucy" },"Hello test",recu_table = test_table_2,["2"] = 13 } test_table_2.recu_table = test_table_1 local metatable = { __index = test_table_2,__add = function(a,b) return 0 end } setmetatable(test_table_1,metatablE) function table_test_lib() table_print(test_table_1) end
以上是大佬教程为你收集整理的打印表数据改进版全部内容,希望文章能够帮你解决打印表数据改进版所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。