Lua中,泛型for循环遍历table时,ipairs和pairs的区别
根据table型变量key是否为连续数字,如果是则称为数组型table,如果不是则称为非数组型table.
事实胜于雄辩,接下来通过实验来区分两组迭代器的区别.
首先给出pairs和ipairs在数组型table和非数组型table中的遍历效果:
local testTable1 = {"a","b","c","d","e"}local testTable2 = {[1] = "a",["x"] = "b",["y"] = "c",[2] = "d",[8] = "e"}print("pairs output arrayTable:")for i,v in pairs(testTable1) doprint(i,v)endprint("-----------------------------")print("ipairs output arrayTable:")for i,v in ipairs(testTable1) doprint(i,v)endprint("-----------------------------")print("pairs output not arrayTable:") for i,v in pairs(testTable2) doprint(i,v)endprint("-----------------------------")print("ipairs output not arrayTable:")for i,v in ipairs(testTable2) doprint(i,v)end
总结:
遍历数组型(连续数字下标)table时,pairs和ipairs效果相同
遍历非数组型(数字字母混合,或者非连续数字)table时:
pairs:先输出数字类型key的键值(按照key的出现顺序),再输出字母类型key的键值(无序)
ipairs:从第一个数字key开始,依次输出所有的key+1的键值,遇到字母下标并不会结束遍历,只是不输出而已.
从效果上看,pairs完全包括了ipairs的能力
通常遍历table的需求是:不考虑table是数组型table还是非数组型table,遍历table中的键值
那么这种情况全部使用pairs即可遍历table.
————————————————
原文链接:https://blog.csdn.net/ellis1970/article/details/80693314
Lua中,泛型for循环遍历table时,ipairs和pairs的区别相关推荐
- Python中使用for循环遍历操作时容易踩的坑
下面这题你知道答案了吗? 假设现在我们定义一个列表a,内容如下: a = [1,2,3,4,5,6,7,8,9,10] 学习过python基础的都知道,针对列表的操作,python提供了一些内置的函数 ...
- lua 5.3.5 使用pairs遍历table时, 遍历结果为什么是随机的
目录 1 遍历结果是随机的 2 为什么会是随机的 2.1 简单介绍table 2.1.1 数组部分 2.1.2 散列表部分 2.2 获取key在散列表中的位置 2.2.1 首先介绍几个宏 2.2.2 ...
- 简单介绍Lua中三种循环语句的使用
今天小编就为大家分享一篇关于Lua中三种循环语句的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Lua的循环和C语言的循环的语法其实差不多,所以, ...
- jquery 遍历java对象_jquery中object对象循环遍历的方法
一个朋友问对象如何转为数组,当我问他为啥要转得时候,他告诉我,数组可以用js循环遍历,而对象则不可以.其实呢,对象同样可以循环遍历的啊.不用转换也可以循环!说明你对js或者jquery的某些操作不是很 ...
- python循环展示大写字母_python调用大写函数python中字典的循环遍历的两种方式
开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...
- python中字典的循环遍历的方式
python开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和 ...
- python中字典的循环遍历的两种方式
开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...
- python中字典的循环遍历_python中字典如何遍历循环
python中字典如何遍历循环 发布时间:2020-09-24 14:16:07 来源:亿速云 阅读:64 作者:Leah 这篇文章将为大家详细讲解有关python中字典如何遍历循环,文章内容质量较高 ...
- JavaScript中利用for循环遍历数组
这篇文章主要为大家详细介绍了JavaScript中利用for循环遍历数组,最好不要使用for in遍历,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 先看一段代码 1 2 3 4 5 6 7 8 ...
最新文章
- 教你实现Vscode的Markdown预览
- TypeScript interface
- paip.http 404错误 的解决
- kernel笔记——块I/O
- 【PP操作手册】成品入库和订单报工
- win32 GDI 画图 防止闪烁
- ubuntu16.04装MatConvNet
- 牛X,.NET6又双叒叕新版本,这是要起飞吗?
- mysql查看执行计划_MySql中如何使用 explain 查询 SQL 的执行计划
- 测试机器大小端的方法
- [Cracking the Coding Interview] 4.1 Route Between Nodes 节点间的路径
- 打印服务器协议,基于TCP/IP协议的嵌入式网络打印服务器设计
- pycharm是python2.还是3_Pycharm:Python2和3及其的Anaconda的正确设置
- AndroidLinux gdb用法
- (day 52 - 先序后序遍历计数 ) 剑指 Offer 55 - II. 平衡二叉树
- python中darks_YOLOv4: Darknet 如何于 Ubuntu 编译,及使用 Python 接口
- React Natvie Fetch工具类
- 【ML经典书籍系列1】解读PRML
- 【老生谈算法】matlab遗传算法工具箱源码——遗传算法
- H3C交换机配置常用命令
热门文章
- 基于SVM的点云分类(树木,建筑两类)
- 养蜂人教你怎么辨别真假蜂蜜
- 重装系统时不小心全盘分区了的文件恢复办法
- 破解Linux的root密码
- AndroidQ与腾讯tbs的兼容问题
- 一种踩内存的定位方法(C++)
- 手机系统android市场占有率,Android成第二大手机系统 市场份额达26%
- CSS中的表格2️⃣之合并/拆分单元格以及单元格中在存放表格(跨行或者跨列)
- 蚂蚁开放平台开发第三方授权登陆(二):PC端
- 科学计算机解三角函数方程,如何让计算器计算方程如何让fx-82ES的卡西欧计算器解一次,二次,或更高次数方程?是支持三角函数的!...