今天在做模型展示的时候,用 pairs 去表里一个表结构,发现遍历出来的模型 id 是无序,

原因,

  1. pairs会输出table中的键和键值对,先顺序输出值,再乱序(键的哈希值)输出键值对
  2. ipairs并不会输出table中存储的键值对,会跳过键值对,然后顺序输出table中的值,遇到nil则会停止。

这是因为,table在存储值的时候是按照顺序的,但是在存储键值对的时候是按照键的哈希值存储的,并不会按照键的字母顺序或是数字顺序存储。

举例,

local a = {"Hello", "World", a = 1, b = 2, x = 10, y = 20, "Good", nil, "Bye"}
-- for i,v in ipairs(a) do
--     print(k,v)
-- end
for k,v in pairs(a) doprint(k,v)
end

lua中的 ipairs 和 pairs相关推荐

  1. lua 中pairs 和 ipairs差别

    ipairs 和pairs在lua中都是遍历tbale的函数可是两者有差别 1.pairs遍历table中的全部的key-vale 而ipairs会依据key的数值从1開始加1递增遍历相应的table ...

  2. Lua中ipairs和pairs的区别

    Lua中ipairs和pairs的区别 泛型for ipairs的实现 pairs的实现 两者区别 泛型for 首先是泛型for的语法 for var-list in exp-list do body ...

  3. lua中pairs和ipairs的区别

    在lua中,pairs可以遍历表中所有的key,并且除了迭代器本身以及遍历表本身还可以返回nil; 但是ipairs则不能返回nil,只能返回数字0,如果遇到nil则退出.它只能遍历到表中出现的第一个 ...

  4. Lua中ipairs与pairs的区别

    Lua中ipairs与pairs的区别 首先我们要知道ipairs和pairs通常用在泛型迭代器与for联动使用. 如: for k, v in pairs(t) doprint(k, v) endf ...

  5. Lua中的pairs们(pairs,ipairs,gmatch)

    我们都知道 pairs在英语中有一对,一双的意思.在Lua中,仍然是这个意思,不过这儿的对是键值对,也就是key-value. 在Lua的文档中查询pairs,我们可以看到的有三个结果 pairs,i ...

  6. Lua中 pairs 和 ipairs 的区别

    Lua中 pairs 和 ipairs 的区别 在我看来,pairs就是粗略计算,ipairs就是仔细计算. pairs只关注存在还是不存在,而ipairs还要关注存在是否合理. pairs将存在的值 ...

  7. Lua中ipairs和pairs的区别详解

    迭代器for遍历table时,ipairs和pairs的区别: 区别一:ipairs遇到nil会停止,pairs会输出nil值然后继续下去 区别二: local a = {"Hello&qu ...

  8. Lua——迭代器的使用、pairs 和 ipairs区别

    --迭代器是一种可以便利一种集合中所有元素得机制 --lua中,迭代器表示为函数,每调用一次函数,即返回集合中得下一个元素 --主要是根据闭合函数来实现得:闭合函数:一个函数加上该函数所需要访问得所有 ...

  9. Lua ipairs、pairs

      先给出 lua 官方 reference 中 ipairs 和 pairs 的解释: pairs (t) Returns three values: the next function, the ...

最新文章

  1. Unix下C程序内存泄漏检测工具Valgrind安装与使用
  2. Vml+Dhtml:制作一个应用渐变颜色效果不错的进度条
  3. 最强观战指南 | Python分析热门夺冠球队(附源代码)
  4. python的合法名称_Python未定义名称:turn。!
  5. 用计算机计算板书,用计算器计算教案板书设计
  6. mysql数据库new和old_数据库触发器中new表和old表是什么意思?
  7. 摘自《Java工程师成神之路》2018修订版,自我勉励
  8. iphone UILabel 顶部对齐(top align)
  9. 线程间通信————同步
  10. 怎样利用VNC远程连接LINUX桌面
  11. 沙盘模拟软件_3D电子心理沙盘系统
  12. oracle 的“+”和“,”连接表的方式
  13. 【零基础入门MyBatis系列】第三篇——使用MyBatis完成CRUD
  14. Win10 默认输入变全角问题解决方法
  15. VaR的应用:选择5家上市商业银行的股票交易致据(最近3年)使用 Weibull分布法估计其90天周期95%置信水平的VaR序列,并面出VaR时序图,计算每支股票最近3年内肤幅超过VaR预测园值的次
  16. vue图片时间轴滑动_vue 写的时间区间拖动控件
  17. MySQL版本号后面包含“-log”代表什么意思?
  18. 华为云宣布将在全球范围内推出区块链服务
  19. python 成语接龙
  20. 对给定的10个国家名,按其字母的顺序输出。C++

热门文章

  1. 《程序员》2016年1月:互联网应用架构面面观
  2. 关于宝塔面板安装ftp连接不上问题
  3. 利用Python轻松实现图片相似度对比(一)
  4. 土耳其语翻译,如何做效果好?
  5. ~~~~~~~~~~~~~人品计算器~~~~~~~~~~~~~~~~~~~~~~~
  6. 中老年互联网经济成一片蓝海, 发展潜力究竟有多大?
  7. 微软:XP用户不要跳过Win7直接升级Win8
  8. 第53届全球生态旅游大使参赛佳丽备战世界总决赛
  9. 企业第一道防线:针对用户的安全最佳做法
  10. java steam reduce_Java 8新特性:Stream API与Date API