写一lua函数,能够遍历打印一个table数据,求代码!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了写一lua函数,能够遍历打印一个table数据,求代码!相关的知识,希望对你有一定的参考价值。

表如下:list_player_totem_return =
totemid = 0,
totemname = '11111111',
areanum = 0,
totemidx = "totemid",
"totemname",
"areanum",
"totemidx",

参考技术A 方法一
require"base"
print(list_player_totem_return )
方法二
function prinitTab(tab)
for i,v in pairs(tab) do
if type(v) == "table" then
print("table",i,"")
printTab(v)
print("")
else
print(v)
end
end
printTab(list_player_totem_return )
这里没做缩进 懒得做了 要做的话自己数一下层数就好了

Lua遍历table

参考技术A Lua中遍历table主要有四种方式,各有各的不同

Lua的存储并不是顺序存储的,所以当我们使用第一种遍历方法去遍历的时候,输出的值可能和我们想象的顺序不同。

在我们的设想里,我们是希望它输出1,2,3,4,但是实际上输出的是1,2,4,3。for k,v in ipairs(tbtest) do是根据key中的hash值的排列顺序来排列的。

它的前提是key是从1开始的,那么它会按照key的大小顺序进行遍历,如果key不连续,它就不会接下去遍历

上面的函数只会打印1,2,3不会打印5

这样就一个都不会遍历

因为#table 是获取table里的数组段的长度,遍历时只会输出数组段的值,并且它的前提也是key必须从1开始,如果key不从1开始,#tbtest获取到的值就是0

它获取的是数组段的key的最大值,字符串的key是无法获取到的

其实maxn还是很有用处的,用它取到最大的key值,我们就可以从前往后遍历数据了,完全可以略过nil

while循环与其他语言循环几乎相同。

repeat..until在lua5.1之后和其他语言有一些细微的不同,就是在循环体的局部变量的作用域扩增到条件测试中,也就是until语句。

以上是关于写一lua函数,能够遍历打印一个table数据,求代码!的主要内容,如果未能解决你的问题,请参考以下文章

从实现求差集介绍lua table需要注意的一些问题

在lua中怎样遍历访问table表中元素

lua table怎么用二维数组

c++ 遍历lua table方法 如图

lua 4 使用table实现其他数据结构,并介绍遍历方法

lua中易混淆函数