Lua初学习 9-14_03 迭代器 ( ipairs 与 pairs)

摘要:
所谓的迭代器是一种可以遍历集合中所有元素的机制。在Lua中,迭代器通常表示为函数。每次调用函数时,即返回ipairs和pairs之间的差异。t1={“一”,“二”,“三”,“四”}--数组==ipairs遍历==分叉,维尼帕斯(t1)打印(k,v)------˃1一个2个3个4端==对

前言 :所谓迭代器:就是一种可以遍历一种集合中所有元素的机制

        Lua中,通常将迭代器表示为函数,每一次调用函数,即返回集合中下一个元素

1:ipairs 与 pairs 的区别

t1 = {"one","two","three","four"}  --数组

==== ipairs遍历 =====

for k,v in ipairs(t1) do

    print(k,v)                    -----> 1 one 2 two 3 three 4 four

end    

==== pairs遍历 ====

for k,v in pairs(t1) do

    print(k,v)                      -----> 1 one 2 two 3 three 4 four  同上

end

==============接下来用 key value初始化table==========

t2 = {a = "one" , b = "two" , c = "three" , d = "four"}

for k,v in ipairs(t2) do

    print(k,v)                     ------>什么都没有

end

for k,v in pairs(t2) do

     print(k,v)                    --------->a = one  b = two  c = three  d = four

end

      可以看出:ipairs无法用于 key value 组成的table ,可以用做数组

                    pairs可以用于table和数组

      

1:来个简单的迭代器

function diedai(t)

    local i = 0

    return function () i = i +1 ;return t[i] end

end

t = {1,2,3,4,5,6}   --创建一个数组

iter = diedai(t) --创建一个迭代器

while true do 

   local e = iter()  --调用迭代器

   if(e==nil) then break end

print(e)

end

免责声明:文章转载自《Lua初学习 9-14_03 迭代器 ( ipairs 与 pairs)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇大小端模式转换函数scala的多种集合的使用(5)之数组Array(ArrayBuffer)的操作下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Lua保留指定小数位数

默认会四舍五入 比如:%0.2f 会四舍五入后,保留小数点后2位 print(string.format("%.1f",0.26)) ---会输出0.3,而不是0.2 Lua保留一位小数 --- nNum 源数字 --- n 小数位数 function Tool. GetPreciseDecimal(nNum, n) if type(nNum)...

lua 函数调用1 -- 闭包详解和C调用

这里, 简单的记录一下lua中闭包的知识和C闭包调用 前提知识: 在lua api小记2中已经分析了lua中值的结构, 是一个 TValue{value, tt}组合, 如果有疑问, 可以去看一下 一些重要的数据结构     lua中有两种闭包, c闭包和lua闭包     两种闭包的公共部分:        #define ClosureHeader C...

python迭代器与生成器及yield

一、迭代器(itertor) 1.可迭代: 在Python中如果一个对象有__iter__()方法或__getitem__()方法,则称这个对象是可迭代的(iterable)。 其中__iter__()方法的作用是让对象可以用“for ... in...”方式来循环遍历,_getitem_()方法是让对象可以通过“实例名[index]”的方式访问实例中的元...

android Studio 配置LUA 开发环境

android Studio 配置 LUA 开发环境关于Android LUA资料 android如何调用lua?Android lua 教程Lua官网lua语言解释Lua 5.1 参考手册Android Lua热修复 引诉大牛的原话: Android 调用 Lua /Lua 调用 Android 代码 在Android项目中使用Lua,需要两个步骤:...

C++问题少年系列-STL相关

目录 STL是什么 OOP与GP Malloc STL中共有几种类型的迭代器 随机访问意味着内存连续吗 逆向迭代器rbegin是否等于end 类型萃取 std::remove_if,std::find_if,std::find和std::find_if的区别是什么 std::remove的实现 std::remove_if的实现 头文件algo...

lua遍历目录

require"lfs" function findindir (path, wefind, r_table, intofolder) for file in lfs.dir(path) do if file ~= "." and file ~= ".." then local f = path..'\'....