Lua配列
配列は、特定の順序で配置された同じデータ型の要素のコレクションです。1 次元配列または多次元配列にすることができます。
Lua配列のインデックスキー値は整数で表現でき、配列のサイズは固定ではありません。
1次元配列
1次元配列は最も単純な配列であり、その論理構造は線形テーブルです。次の例に示すように、1 次元配列では for ループを使用して配列内の要素をループアウトできます:
array = {"Lua", "Tutorial"} for i= 0, 2 do print(array[i]) end
上記のコード実行出力は次のとおりです:
nil Lua Tutorial
ご覧のとおり、整数を使用できます。配列要素にアクセスするためのインデックス。既知のインデックスに値がない場合は、nil が返されます。
Luaではインデックス値は1から始まりますが、0から始めることも指定できます。
さらに、負の数値を配列のインデックス値として使用することもできます:
array = {} for i= -2, 2 do array[i] = i *2 end for i = -2,2 do print(array[i]) end
上記のコード実行の出力結果は次のとおりです:
-4 -2 0 2 4
多次元配列
多次元配列とは、配列に配列または対応する配列が含まれていることを意味します。 1次元配列のインデックスキーに。
以下は 3 行 3 列の多次元配列です:
-- 初始化数组 array = {} for i=1,3 do array[i] = {} for j=1,3 do array[i][j] = i*j end end -- 访问数组 for i=1,3 do for j=1,3 do print(array[i][j]) end end
上記のコードの実行の出力結果は次のとおりです:
1 2 3 2 4 6 3 6 9
3 行 3 列の多次元配列インデックス キー:
-- 初始化数组 array = {} maxRows = 3 maxColumns = 3 for row=1,maxRows do for col=1,maxColumns do array[row*maxColumns +col] = row*col end end -- 访问数组 for row=1,maxRows do for col=1,maxColumns do print(array[row*maxColumns +col]) end end
上記のコードの実行の出力結果は次のとおりです:
1 2 3 2 4 6 3 6 9
ご覧のとおり、上記の例では、配列は指定されたインデックス値に設定されており、これにより nil 値を回避でき、ヘルプが得られます。メモリスペースを節約します。