table.move
テーブルの一部の要素を他の位置に移動する
lua
table.move (a1, f, e, t [,a2])
説明
テーブル a1
の要素をテーブル a2
に移動またはコピーします。この操作は次のような複数代入と同等です:
a2[t], a2[t+1], ..., a2[t+(e-f)] = a1[f], a1[f+1], ..., a1[e]
f
:a1
の開始インデックスe
:a1
の終了インデックスt
:a2
の開始インデックス
a2
を省略した場合、デフォルトで a1
が使用されます。つまり、a1
の要素を a1
内で移動(コピー)します。移動元と移動先の範囲が重なっていても正しく動作します。移動する要素数は Lua の整数で表せる範囲内でなければなりません。
この関数は、移動先のテーブル a2
を返します。
サンプルコード
lua
-- テーブルa1の要素を移動
local a1 = {10, 20, 30, 40, 50}
table.move(a1, 2, 4, 1) -- a1の2番目から4番目の要素を1番目から配置し直す
for i, v in ipairs(a1) do
print(i, v)
end
この例では、テーブルa1
の2番目から4番目の要素(20, 30, 40)が1番目から順に配置されます。結果として、テーブルa1
は{20, 30, 40, 40, 50}
になります。