遍历表

简介: 遍历表

可以使用 pairs 迭代器遍历表中的键值对,如下所示:

t = {10, print, x = 12, k = "hi"}
for k, v in pairs(t) do print(k, v) end
--> 1       10
--> 2       function: 0x558d565900f0
--> k       hi
--> x       12


受限于表在 Lua 语言中的底层实现机制,遍历过程中元素的出现顺序可能是随机的,相同的程序在每次运行时也可能产生不同的顺序。唯一可以确定的是,在遍历的过程中每个元素会且只会出现一次。


对于列表而言,可以使用 ipairs 迭代器:

t = {10, print, "hi"}
for k, v in ipairs(t) do print(k, v) end
--> 1       10
--> 2       function: 0x561fee3690f0
--> 3       hi

此时, Lua 会确保遍历是按照顺序进行的。


另一种遍历序列的方法是使用数值型 for 循环:

t = {10, print, 12, "hi"}
for k = 1, #t do print(k, t[k]) end
--> 1       10
--> 2       function: 0x55886c7440f0
--> 3       12
--> 4       hi
目录
相关文章
|
Linux C++
合并k个已排序的链表
合并k个已排序的链表
36 0
|
3月前
|
存储 索引 Python
哈希表是怎么删除元素的,能直接删除吗?
哈希表是怎么删除元素的,能直接删除吗?
63 3
|
C++
【C/C++练习】合并k个已排序的链表(一)
【C/C++练习】合并k个已排序的链表(一)
82 0
|
C++
【C/C++练习】合并k个已排序的链表(二)
【C/C++练习】合并k个已排序的链表(二)
87 0
【C/C++练习】合并k个已排序的链表(二)
DS二叉排序树之创建和插入
DS二叉排序树之创建和插入
链表学习(链表的创建,插入,删除,查找,遍历)
链表学习(链表的创建,插入,删除,查找,遍历)
134 0
关于对象遍历的时候的一些排序问题
关于对象遍历的时候的一些排序问题
112 0
关于对象遍历的时候的一些排序问题
|
存储 前端开发 程序员
合并两个排序的链表
合并两个排序的链表
合并两个排序的链表
|
算法
【数据结构】动态表查找—红黑树的介绍与查找插入
【数据结构】动态表查找—红黑树的介绍与查找插入
182 0
【数据结构】动态表查找—红黑树的介绍与查找插入