Lua基礎迭代器的使用實例

今天小編就爲大家分享一篇關於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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。如果你想了解更多相關內容請查看下面相關鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章