動態

詳情 返回 返回

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

Add a new 評論

Some HTML is okay.