根据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的区别相关推荐

  1. Python中使用for循环遍历操作时容易踩的坑

    下面这题你知道答案了吗? 假设现在我们定义一个列表a,内容如下: a = [1,2,3,4,5,6,7,8,9,10] 学习过python基础的都知道,针对列表的操作,python提供了一些内置的函数 ...

  2. 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 ...

  3. 简单介绍Lua中三种循环语句的使用

    今天小编就为大家分享一篇关于Lua中三种循环语句的使用讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧 Lua的循环和C语言的循环的语法其实差不多,所以, ...

  4. jquery 遍历java对象_jquery中object对象循环遍历的方法

    一个朋友问对象如何转为数组,当我问他为啥要转得时候,他告诉我,数组可以用js循环遍历,而对象则不可以.其实呢,对象同样可以循环遍历的啊.不用转换也可以循环!说明你对js或者jquery的某些操作不是很 ...

  5. python循环展示大写字母_python调用大写函数python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

  6. python中字典的循环遍历的方式

    python开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和 ...

  7. python中字典的循环遍历的两种方式

    开发中经常会用到对于字典.列表等数据的循环遍历,但是python中对于字典的遍历对于很多初学者来讲非常陌生,今天就来讲一下python中字典的循环遍历的两种方式. 注意: python2和python ...

  8. python中字典的循环遍历_python中字典如何遍历循环

    python中字典如何遍历循环 发布时间:2020-09-24 14:16:07 来源:亿速云 阅读:64 作者:Leah 这篇文章将为大家详细讲解有关python中字典如何遍历循环,文章内容质量较高 ...

  9. JavaScript中利用for循环遍历数组

    这篇文章主要为大家详细介绍了JavaScript中利用for循环遍历数组,最好不要使用for in遍历,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 先看一段代码 1 2 3 4 5 6 7 8 ...

最新文章

  1. 教你实现Vscode的Markdown预览
  2. TypeScript interface
  3. paip.http 404错误 的解决
  4. kernel笔记——块I/O
  5. 【PP操作手册】成品入库和订单报工
  6. win32 GDI 画图 防止闪烁
  7. ubuntu16.04装MatConvNet
  8. 牛X,.NET6又双叒叕新版本,这是要起飞吗?
  9. mysql查看执行计划_MySql中如何使用 explain 查询 SQL 的执行计划
  10. 测试机器大小端的方法
  11. [Cracking the Coding Interview] 4.1 Route Between Nodes 节点间的路径
  12. 打印服务器协议,基于TCP/IP协议的嵌入式网络打印服务器设计
  13. pycharm是python2.还是3_Pycharm:Python2和3及其的Anaconda的正确设置
  14. AndroidLinux gdb用法
  15. (day 52 - 先序后序遍历计数 ) 剑指 Offer 55 - II. 平衡二叉树
  16. python中darks_YOLOv4: Darknet 如何于 Ubuntu 编译,及使用 Python 接口
  17. React Natvie Fetch工具类
  18. 【ML经典书籍系列1】解读PRML
  19. 【老生谈算法】matlab遗传算法工具箱源码——遗传算法
  20. H3C交换机配置常用命令

热门文章

  1. 基于SVM的点云分类(树木,建筑两类)
  2. 养蜂人教你怎么辨别真假蜂蜜
  3. 重装系统时不小心全盘分区了的文件恢复办法
  4. 破解Linux的root密码
  5. AndroidQ与腾讯tbs的兼容问题
  6. 一种踩内存的定位方法(C++)
  7. 手机系统android市场占有率,Android成第二大手机系统 市场份额达26%
  8. CSS中的表格2️⃣之合并/拆分单元格以及单元格中在存放表格(跨行或者跨列)
  9. 蚂蚁开放平台开发第三方授权登陆(二):PC端
  10. 科学计算机解三角函数方程,如何让计算器计算方程如何让fx-82ES的卡西欧计算器解一次,二次,或更高次数方程?是支持三角函数的!...