之前写了个类似php的var_dump()函数,下面在来一个print_r()函数,代码如下:
- function pr (t, name, indent)
- local tableList = {}
- function table_r (t, name, indent, full)
- local id = not full and name or type(name)~="number" and tostring(name) or '['..name..']'
- local tag = indent .. id .. ' = '
- local out = {} -- result
- if type(t) == "table" then
- if tableList[t] ~= nil then
- table.insert(out, tag .. '{} -- ' .. tableList[t] .. ' (self reference)')
- else
- tableList[t]= full and (full .. '.' .. id) or id
- if next(t) then -- Table not empty
- table.insert(out, tag .. '{')
- for key,value in pairs(t) do
- table.insert(out,table_r(value,key,indent .. '| ',tableList[t]))
- end
- table.insert(out,indent .. '}')
- else table.insert(out,tag .. '{}') end
- end
- else
- local val = type(t)~="number" and type(t)~="boolean" and '"'..tostring(t)..'"' or tostring(t)
- table.insert(out, tag .. val)
- end
- return table.concat(out, '\n')
- end
- return table_r(t,name or 'Value',indent or '')
- end
- function print_r (t, name)
- print(pr(t,name))
- end
- local a = {x=1, y=2, label={text='hans', color='blue'}, list={'a','b','c'}}
- print_r(a)
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
😆 博主你好,贵博友链已做好哦~~
友链已加首页 😛