Lua Academy · レッスン

tableライブラリ関数

table.insert、remove、sort、concat、move、unpackを利用します。

レッスン 2/413 ステップ

「tableライブラリ関数」はCoddyKit上の無料Lua Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLua Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Lua Academyコースには全4レッスンが含まれています。

table モジュール

table モジュールは、配列として使う Lua のテーブルを操作する関数を提供します。insert、remove、sort、concat、move、unpack などがあります。

table.insert

table.insert(t, val) は末尾に追加します。table.insert(t, pos, val) は指定位置に挿入し、それ以降の要素を右へ移動します。

local t = {"a", "b", "d"}
table.insert(t, "e")       -- append
table.insert(t, 3, "c")   -- insert at index 3
print(table.concat(t, ","))  -- a,b,c,d,e

table.remove

table.remove(t) は末尾の要素を削除して返します。table.remove(t, pos) は指定位置の要素を削除し、以降の要素を左へ移動します。

local t = {"x", "y", "z"}
print(table.remove(t))     -- z
print(table.remove(t, 1))  -- x
print(table.concat(t))     -- y

table.sort

table.sort(t, cmp) はテーブルをその場でソートします。cmp を指定しない場合は < を使います。比較関数は狭義弱順序を満たす必要があります。

local t = {3, 1, 4, 1, 5, 9, 2, 6}
table.sort(t)
print(table.concat(t, " "))  -- 1 1 2 3 4 5 6 9

table.concat

table.concat(t, sep, i, j) は、配列要素を結合して文字列にします。要素は文字列または数値である必要があります。

local words = {"Hello", "world", "from", "Lua"}
print(table.concat(words, " "))  -- Hello world from Lua

table.move

table.move(a1, f, e, t, a2) は、a1[f..e] の要素を a2 の t から始まる位置へコピーします。a2 を省略すると、a1 内でコピーします。

local src = {1,2,3,4,5}
local dst = table.move(src, 2, 4, 1, {})
print(table.concat(dst, ","))  -- 2,3,4

table.unpack

table.unpack(t, i, j) は、t[i] から t[j] までの要素を個別の値として返します。デフォルトは 1 から #t までです。

local t = {10, 20, 30}
print(table.unpack(t))         -- 10  20  30
local a, b = table.unpack(t, 1, 2)
print(a, b)                    -- 10  20

table.pack

table.pack(...) は可変長引数をテーブルにまとめ、n フィールドに nil を含む引数の総数を格納します。

local function allArgs(...)
  local t = table.pack(...)
  print("count:", t.n)
  return t
end
allArgs(1, nil, 3)  -- count: 3

insert/remove によるキューのシミュレーション

table.insert で末尾に enqueue し、table.remove(t, 1) で先頭から dequeue します(注:計算量は O(n) です)。

スタックのシミュレーション

table.insert で push し、位置を指定しない table.remove で pop します。どちらも O(1) の操作です。

シフトに使う table.move

table.move(t, 2, #t, 1) を使ってすべての要素を1つ左へ移動し、その後で最後の要素を nil にします。

local t = {1,2,3,4,5}
table.move(t, 2, #t, 1)
t[#t] = nil
print(table.concat(t, ","))  -- 2,3,4,5

table ライブラリに関する質問

table.pack(1, nil, 3) は何を返しますか?

復習:table ライブラリ

table ライブラリは、insert、remove、sort、concat、move、unpack、pack を提供します。これらを組み合わせることで、一般的な配列操作のニーズに効率よく対応できます。

無料で開始

AI チューターと学ぶ Lua — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
40
レッスン
159

よくある質問

「tableライブラリ関数」レッスンは無料ですか?

はい。「tableライブラリ関数」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Lua Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Lua Academyコースには全4レッスンが含まれています。

「tableライブラリ関数」で何を学びますか?

table.insert、remove、sort、concat、move、unpackを利用します。 ブラウザで直接実行するハンズオンコードでLua Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Lua Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのLua Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「tableライブラリ関数」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このLua Academyレッスンでコードを書いて実行できますか?

はい。すべてのLua Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. mathライブラリ関数
  2. tableライブラリ関数
  3. osとioライブラリ
  4. debugライブラリ
← Lua Academyに戻る