Skip to content

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]

  • fa1 の開始インデックス
  • ea1 の終了インデックス
  • ta2 の開始インデックス

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}になります。