zoukankan      html  css  js  c++  java
  • lua中pairs 和 ipairs 的区别

    1、table中存储值的时候,是按照顺序存储的,存储 k-v 的时候,是按照 k 的哈希值存储的。

    2、ipairs --- 只能输出 table 中的值,并且不可输出nil,遇到 ni l就退出

       pairs --- 可以输出 table 中的值与 k-v ,并且是按照先输出值,再乱序输出 k-v 的顺序进行输出,可以输出 nil

    3、以下是结论:

         1>单独的值:两者的输出结果一致

         2>单独的 k-v:再细分为  --- k 全部为数字(ipairs一定是需要从1开始,每次递增1,遇到不连续的k就退出))、k 全部为非数字、k为数字与非数字的混合

         3>值与 k-v 的混合: 当数组索引与数字 k 有冲突的时候,ipairs 不遍历这个情况的 k-v ,不冲突会遍历数字 k

    4、以下是针对3的部分 ipairs 测试代码:

    a = {[0] = "a1", [2] = "a2", [3] = "a3", [5] = "a4", [6] = "a5"} 

    没有结果输出!!!因为纯数字的 k 不是从 1开始的

    a = {[1] = "a1", [2] = "a2", [3] = "a3", [5] = "a4", [6] = "a5"} 

    table={n = 4, "Hello", [3] = "oi", m = 0, "World", a=1, b=2, "Lua","C#"}

    table={"Hello", [2] = "oi", "World"}

    table={"Hello", [2] = "oi"}

  • 相关阅读:
    Linux中的邮件发送
    Python学习笔记18-发送邮件
    Ansible学习笔记
    eclipse使用maven打包时去掉测试类
    CentOS安装redis
    spring boot 部署
    sprint boot 配置
    spring-boot 学习笔记一
    不要容忍破窗户
    阿里云安装Oracle
  • 原文地址:https://www.cnblogs.com/luguoshuai/p/10042643.html
Copyright © 2011-2022 走看看