使用lua实现php的print_r()函数功能

 更新时间:2014年11月03日 16:04:34   投稿:hebedich  
笔者比较熟悉php,所以一直在做一些使用lua来实现php中函数的功能,算是自己对lua理解的一个小测试吧

之前写了一些类似php的函数,下面再来一个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) 

相关文章

  • Lua读写文件代码示例

    Lua读写文件代码示例

    这篇文章主要介绍了Lua读写文件代码示例,本文讲解了读写文件的模式以及读写文件代码实例,需要的朋友可以参考下
    2015-04-04
  • Lua中的闭合函数、非全局函数与函数的尾调用详解

    Lua中的闭合函数、非全局函数与函数的尾调用详解

    这篇文章主要介绍了Lua中的闭合函数、非全局函数与函数的尾调用详解,本文对这2种函数和尾调用做了深入研究,需要的朋友可以参考下
    2014-09-09
  • Lua基础之运算符的使用示例

    Lua基础之运算符的使用示例

    今天小编就为大家分享一篇关于Lua基础之运算符的使用示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Lua table简明总结

    Lua table简明总结

    这篇文章主要介绍了Lua table简明总结,table是lua唯一的数据结构,table 是 lua 中最重要的数据类型,本文详细讲解了table的相关知识,需要的朋友可以参考下
    2014-10-10
  • Linux下编写Lua扩展so文件和调用方法实例

    Linux下编写Lua扩展so文件和调用方法实例

    这篇文章主要介绍了Linux下编写Lua扩展so文件和调用方法实例,本文给出C语言代码、编译SO文件、Lua中调用代码实例,需要的朋友可以参考下
    2015-05-05
  • Lua 极简入门指南(七):面向对象编程

    Lua 极简入门指南(七):面向对象编程

    这篇文章主要介绍了Lua 极简入门指南(七):面向对象编程,本文讲解了类和继承的概念,并给出了编程实例,需要的朋友可以参考下
    2014-11-11
  • 编写高性能Lua代码的方法

    编写高性能Lua代码的方法

    这篇文章主要介绍了编写高性能Lua代码的方法,本文是基于Lua语言的创造者Roberto Ierusalimschy的一篇文章翻译改写而来,需要的朋友可以参考下
    2014-10-10
  • Lua常用时间函数使用实例

    Lua常用时间函数使用实例

    这篇文章主要介绍了Lua常用时间函数使用实例,本文直接给出使用代码实例,并附有详细注释,要用到哪个复制即可,需要的朋友可以参考下
    2015-04-04
  • Lua极简入门指南:全局变量

    Lua极简入门指南:全局变量

    这篇文章主要介绍了Lua极简入门指南:全局变量,本文讲解了全局变量、_ENV等内容,需要的朋友可以参考下
    2014-10-10
  • 举例简介Lua中函数的基本用法

    举例简介Lua中函数的基本用法

    这篇文章主要介绍了举例简介Lua中函数的基本用法,--两个横线开始单行的注释,--[[加上两个[和]表示多行的注释--]],需要的朋友可以参考下
    2015-07-07

最新评论