递归打印lua表

博客介绍了如何在Lua中实现递归打印表格,以解决默认print方法不支持表格打印的问题。作者通过自定义方法实现了美观且易于阅读的表格打印,并展示了如何在不改变原有print方法使用习惯的情况下,使其支持表格打印。
摘要由CSDN通过智能技术生成

递归打印lua表

lua的print方法是不支持表的打印的,这样查看一个table的内容会变得非常麻烦,在写这篇博客之前我也从网上查找了大量资料,内容很多,但是都不能满足我的要求。要不输出格式不够美观要不就是用起来麻烦,比如要掉用一个自定义的方法才能打印,而且只能打印一个table。我的想法是让print方法支持表的打印,用法跟原生的没有差别,可以传递多个参数并且顺序打印。

自己琢磨了一会儿发现输出内容很简单,只要一个递归就可以,但是要输出美观就要多花时间测试了。下面贴出详细代码.

function dumpTable(t, tab)
    local str = str or ""
    if not t then
        print("table is nil")
        return str
    end

    tab = tab or "  "
    tab = tab .. "  "
    str = str .. "{\n"

    if type(t) == "table" then
        for k, v in pairs(t) do
            if type(k) == "number" then
                str = str .. string.sub(tab, 2, string.len(tab)) .. "[" .. k .. "]" .. " = "
            else
                str = str .. string.sub(tab, 2, string.len(tab)) .. "[\"" .. k .. "\"]" .. " = "
            end
            if type(v) == "string" then
                str = str .. 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值