Lua中的迭代器

2021-06-26 03:59:18 字數 585 閱讀 7887

1、lua標準庫中提供了4種常用的迭代器

(1)用於迭代檔案中每行的io.lines

(2)迭代字串中單詞的string.gmatch

(3)迭代table元素的pairs

(4)迭代陣列元素的iparis

相對於數字型for迴圈,後兩者又稱為泛型for迴圈

2、pairs與ipairs

paris遍歷table中所有的元素,並可獲取各個元素的key和value,需要注意的是:pairs的遍歷不保證是有序的,也就是說,pairs以無序的方式遍歷table中所有的元素

ipairs的遍歷是基於元素的key的,其設計是用於遍歷陣列(lua中的陣列可以理解為結構特殊的table),ipairs遍歷陣列時,會根據元素的key,從1開始進行key值遞增的遍歷,直到下乙個table中下乙個key值索引的元素為空值為止。與pairs相比,iparis是有序的。需要注意的地方是(1)不以整數索引的元素不遍歷 (2)遍歷是從1開始的,因此以0索引的元素不會被遍歷 (3)當table中的下乙個key值索引的元素為空時,遍歷結束,即並非table中所有以整數索引的元素都會被遍歷,形如 a = 的table,使用ipairs遍歷時,『d'不會被遍歷。

lua中的迭代器分析

1.所謂 迭代器 就是一種可以遍歷某個集合中所有元素的機制,在lua中迭代器通常表示為函式,而具體的實現有很多種。整個迭代的過程基本如下 首先是通過迭代器工廠建立迭代器 然後每次呼叫這個迭代器時,它就會從指定的集合中返回下乙個元素 直到最後乙個元素返回後,迭代器就會返回nil,以此表示迭代結束。2....

Lua中迭代器的使用技巧

迭代器的使用技巧 使用排序好的key迭代 你曾有過這樣的需求麼 fork,v inpairs t do 按照排序的key來遍歷表.function sortedpairs t,comparator local sortedkeys table.foreach t,function k,v table...

Lua迭代器的實現

lua迭代器才有放回個函式的方法,for in的結構會迴圈呼叫該函式,直到第乙個放回值為nil時,就會終止迴圈。其中迭代器中的函式會利用upvalue的概念,如下面 變數i就是放回函式的upvalue,返回函式體中不斷的對i變數做 1處理,i的值就是從0,1,2,3不斷的往上加的。local ite...