首页 > 其他分享 >[十万个为什么] [lua] 打印table

[十万个为什么] [lua] 打印table

时间:2024-07-22 18:17:44浏览次数:7  
标签:indent 十万个 .. end lua val print table string

local function print_r(t)
	local print_r_cache = {}
	local function sub_print_r(t, indent)
		if (print_r_cache[tostring(t)]) then
			print(indent .. "*" .. tostring(t))
		else
			print_r_cache[tostring(t)] = true
			if (type(t) == "table") then
				for pos, val in pairs(t) do
					if (type(val) == "table") then
						print(indent .. "[" .. pos .. "] = " .. "{")
						-- sub_print_r(val, indent .. string.rep(" ", string.len(pos) + 8))
						-- print(indent .. string.rep(" ", string.len(pos) + 6) .. "}")
						sub_print_r(val, indent .. string.rep(" ", 4))
						print(indent .. string.rep(" ", 0) .. "}")
					elseif (type(val) == "string") then
						print(indent .. "[" .. pos .. '] = "' .. val .. '"')
					else
						print(indent .. "[" .. pos .. "] = " .. tostring(val))
					end
				end
			else
				print(indent .. tostring(t))
			end
		end
	end
	if (type(t) == "table") then
		print(tostring(t) .. " {")
		sub_print_r(t, string.rep(" ", 4))
		print("}")
	else
		sub_print_r(t, string.rep(" ", 4))
	end
	print()
end

 

标签:indent,十万个,..,end,lua,val,print,table,string
From: https://www.cnblogs.com/kehuadong/p/18316648

相关文章

  • 科普文:TransmittableThreadLocal通过javaAgent实现线程传递并支持ForkJoin
    概叙TransmittableThreadLocal的介绍,直接看官网:https://github.com/alibaba/transmittable-thread-local目前使用中的稳定发布版本v2.x在 分支2.x上。帮助文档:https://github.com/alibaba/transmittable-thread-local#-%E5%8A%9F%E8%83%BD这篇文章主要介绍了Transmitta......
  • 1、Flink 的 Table API & SQL API 概述
    1)概览1.TableAPI&SQLFlink有两种关系型API来做流批统一处理:TableAPI和SQL。TableAPI是用于Scala和Java语言的查询API,它可以用一种非常直观的方式来组合使用选取、过滤、join等关系型算子。FlinkSQL是基于ApacheCalcite来实现的标准SQL。无论输入......
  • Stable Diffusion原理与代码实例讲解
    StableDiffusion原理与代码实例讲解1.背景介绍1.1问题的由来在深入探讨StableDiffusion之前,让我们先了解其应用背景。StableDiffusion主要出现在扩散模型领域,特别是在生成对抗网络(GAN)、变分自编码器(VAE)以及自回归模型中。这些模型通常用于生成高质量的样本,例如图像......
  • Debian12 AMD 显卡 7900XT 安装使用 stable-diffusion-webui 笔记
    简介由于AMD官方没有提供Debian12的驱动和ROCM,只好安装Ubuntu20.04的驱动和ROCM,必要软件git和python3-venv。添加i386仓库sudodpkg--add-architecturei386&&\sudoaptupgrade-y&&\aptupgrade-y下载驱动安装程序到AMD官网下载Ubuntu20.04驱动......
  • lua开发:有限状态机模式设计
    有限状态机,表示有限个状态以及在这些状态之间的转移和动作等行为的处理模型。在任意时刻有限状态机都处于某一特定的状态,并且可以根据当前状态和输入条件(触发事件),从当前状态转移到另一个状态。核心概念:实体(Entity):状态机的主体和作用对象,它的状态可以改变状态(State):实体在某......
  • iptables 的 --syn 参数用于检测新链接
    iptables命令中的--syn参数用于匹配TCP数据包的SYN标志位。SYN是TCP协议中的一个标志,用于初始化连接的建立过程。在TCP三次握手的第一步中,客户端发送一个带有SYN标志的数据包来请求建立连接。使用--syn参数的含义--syn参数:这个参数用于在iptables规则中匹......
  • 加载 iptables 相关模块
    在现代Linux系统中,连接跟踪(ConnectionTracking)功能已经集成到nf_conntrack模块中,不再需要单独加载ip_conntrack模块。相应的nf_conntrack模块负责处理IPv4的连接跟踪功能,而IPv6的连接跟踪功能由nf_conntrack_ipv6模块处理。如果你需要加载与连接跟踪相关的模块,可以使用......
  • Java中的异步编程与CompletableFuture应用
    Java中的异步编程与CompletableFuture应用大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在现代Java编程中,异步编程变得越来越重要,它可以帮助我们提高应用程序的响应速度和性能。CompletableFuture是Java8引入的一个强大工具,它简化了异步编程,使得......
  • CompletableFuture异步编程—Java8 (附代码举例)
    ......
  • lua 游戏架构 之 SceneLoad场景加载(二)
    设计上 定义`NormalSceneLoad`的类,该类继承自`BaseSceneLoad`。lua游戏架构之SceneLoad场景加载(一)-CSDN博客文章浏览阅读48次。设计一个为`BaseSceneLoad`class,用于处理场景加载的相关操作,主要作用是提供了一个通用的场景加载框架https://blog.csdn.net/heyuchang666/a......