今天小編就爲大家分享一篇關於Lua基礎迭代器的使用實例,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
官方的文檔說:
迭代器(iterator)是一種對象,它能夠用來遍歷標準模板庫容器中的部分或全部元素,每個迭代器對象代表容器中的確定的地址
在Lua中迭代器是一種支持指針類型的結構,它可以遍歷集合的每一個元素。
迭代器的種類主要有:泛型for迭代器、無狀態的迭代器、多狀態的迭代器
下面看幾個例子:
ipairs.lua
name = {"YYX","HJZ"}; --以下稱爲泛型for迭代器 --其中key表示索引值,從1開始計算 --value表示數組中的元素 --ipairs表示迭代函數 for key,value in ipairs(name) do print(key,value); end --實現一個自加算法無狀態的迭代函數 function NumAdd(count,var) --定義一個局部變量_count並初始化爲0 local _count = 0 ; --參數count表示該函數需要迭代的次數 --其實這裏的思路有點像C的遞歸 --實現遞歸需要有條件退出,有始有終 if(var < count) then var = var + 1 ; return var , var + _count ; end end --輸出迭代函數的值,i表示迭代次數,n表示迭代後的數值 for i , n in NumAdd,5,0 do print(i,n); end array = {1,2,3,4,5,6,7,8,9,10}; function array_put(length , var) --獲取Array的長度 length = #array ; --如果傳入需要遍歷的值小於Array的長度,就遍歷 if(var < length) then var = var + 1 ; return var , array[var] ; end end for i , n in array_put,10,0 do print(i,n); end
解釋運行:
lua ipairs.lua
運行結果:
1 YYX
2 HJZ
1 1
2 2
3 3
4 4
5 5
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接