zoukankan      html  css  js  c++  java
  • ipairs与pairs的区别

    ipairs 和pairs在lua中都是遍历tbale的函数可是两者有差别

    1.pairs遍历table中的全部的key-vale 而ipairs会依据key的数值从1開始加1递增遍历相应的table[i]值

    如:table1 = { key1 = "val1", key2 = "val2", "val3" }

    pairs 会优先输出没有键的值,即先输出"val3" ,再到key1 = "val1",再 key2 = "val2"。

    ipairs 只会输出没有键的值。即只输出"val3",其他不会输出。

    pairs能够遍历表中全部的key,而且除了迭代器本身以及遍历表本身还能够返回nil;可是ipairs则不能返回nil,仅仅能返回数字0,假设遇到nil则退出。它仅仅能遍历到表中出现的第一个不是整数的key

    例程1:

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

        for key, value in ipairs(a) do

          print(key, value)

        end

    结果:

        1    a1

        2    a2

        3    a3

    例程2:

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

        for key, value in pairs(a) do

          print(key, value)

        end

    结果:

        6    a5

        2    a2

        3    a3

        1    a1

        5    a4

    例程3:

        tab1 = { key1 = "val1", key2 = "val2", "val3" }

        for k, v in pairs(tab1) do

            print(k .. " - " .. v)

        end

    结果:

        1 - val3

        key1 - val1

        key2 - val2

    例程4

        tab1 = { key1 = "val1", key2 = "val2", "val3" }

        for k, v in ipairs(tab1) do

            print(k .. " - " .. v)

        end

    结果:

    1 - val3

    ---------------------

    转载于:

    https://blog.csdn.net/zwj695535100/article/details/83040127

  • 相关阅读:
    linux编译C
    Windows下ARP协议的工作原理简介
    窥探QQ基础数据库架构演变史
    JAVA培训—线程同步--卖票问题
    SQLite、MySQL和PostgreSQL 三种关系数据库哪个好?
    再论谭浩强《C语言程序设计》
    JPG加入RAR文件原理详解
    如何区分一个程序员是“老手“还是“新手“?
    AutoITx3.DLL所有函数及说明
    windows索引服务
  • 原文地址:https://www.cnblogs.com/gd-luojialin/p/10962724.html
Copyright © 2011-2022 走看看