Luaの基本的なイテレータの使用例
2022-01-09 04:36:37
公式のドキュメントには、次のように書かれています。
イテレータは、標準テンプレートライブラリのコンテナ内の一部またはすべての要素に対して反復処理を行うために使用できるオブジェクトであり、各イテレータオブジェクトはコンテナ内の定義されたアドレスを表します。
Luaにおけるイテレータとは、コレクションの各要素に対して反復処理を行うポインタ型をサポートする構造体のことです。
主なイテレータの種類は、汎用イテレータ、ステートレスイテレータ、マルチステートイテレータです。
以下はその例です。
ipairs.lua
name = {"YYX","HJZ"};
-- the following is called a generic for iterator
-- where key denotes the index value, starting from 1
--value denotes the element in the array
--ipairs denotes the iterative function
for key,value in ipairs(name) do
print(key,value);
end
--implement a self-addition algorithm stateless iterative function
function NumAdd(count,var)
-- Define a local variable _count and initialize it to 0
local _count = 0 ;
-- The parameter count indicates the number of iterations needed for the function
--In fact, the idea here is a bit like the C recursion
--Implementing recursion requires a conditional exit, with a beginning and an end
if(var < count)
then
var = var + 1 ;
return var , var + _count ;
end
end
--output the value of the iteration function, i means the number of iterations, n means the value after iteration
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)
--get the length of the array
length = #array ;
--If the value to be traversed is less than the length of the array, then traverse it
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
概要
以上が本記事の内容の全てです、皆様の勉強やお仕事に本記事の内容が一定の参考学習価値を持つことを願っています、BinaryDevelopをよろしくお願いします。もっと詳しく知りたい方は、以下のリンク先をご確認ください。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン