lua学习笔记 4 迭代法遍历 table,当Table中含Table时,递归输出

lua学习笔记 4 迭代法遍历 table,当Table中含Table时,递归输出,第1张

概述迭代法遍历 table,当Table中含Table时,递归调用。打印Table中 K, V值 通过type(arg) 判断当前类型 table1 = { name = "Android Developer", email = "[email protected]", url = "http://blog.csdn.net/hpccn", quote = [[ There are 10

迭代法遍历 table,当table中含table时,递归调用。打印table中 K,V值


通过type(arg) 判断当前类型


table1 = {	name = "AndroID Developer",email = "[email protected]",url = "http://blog.csdn.net/hpccn",quote = [[	There are 	10 types of pepole	who can understand binary.	]],--多行文字	embeddedTab = {		em1 = xx,x =0,{x =1,y =2 } -- 再内嵌table	}-- 内嵌table }tab = "    "function print_table(t,i)	local indent ="" -- i缩进,当前调用缩进	for j = 0,i do 		indent = indent .. tab	end	for k,v in pairs(t) do 		if (type(v) == "table") then -- type(v) 当前类型时否table 如果是,则需要递归,			print(indent .. "< " .. k .. " is a table />")			print_table(v,i + 1) -- 递归调用			print(indent .. "/> end table ".. k .. "/>")		else -- 否则直接输出当前值							print(indent .. "<" .. k .. "=" .. v.."/>")		end	endendprint_contents(table1,0)


输出结果:

for k,v in pairs(table) do 这样的遍历顺序并非是table中table的排列顺序,而是根据table中key的hash值排序来遍历的。

与Java中 HashMap,C++中的Map相似。

    <name=AndroID Developer/>    <quote=	There ar 	10 types of pepole	who can understand binary.	/>    <url=http://blog.csdn.net/hpccn/>    < embeddedTab is a table />        < 1 is a table />            <y=2/>            <x=1/>        /> end table 1/>        <x=0/>    /> end table embeddedTab/>    <[email protected]/>



学习重点: 

1 数据类型的判断: type()

lua语言中的数据类型主要有:nil、number、string、function、table、thread、boolean、userdata。

需要确定一个变量的类型时,可以使用内置函数type获取,如下:

type(“hello world”);              ---->stringtype(type);                            ---->functiontype(3.1415);                       ---->numbertype(type(type));                  ---->string



2 迭代法 

pairs 迭代全部的项

ipairs 迭代以数字做键值的项,且从1 开始

for k,v in pairs(t) do 
总结

以上是内存溢出为你收集整理的lua学习笔记 4 迭代法遍历 table,当Table中含Table时,递归输出全部内容,希望文章能够帮你解决lua学习笔记 4 迭代法遍历 table,当Table中含Table时,递归输出所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1266125.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存