tableライブラリ関数
table.insert、remove、sort、concat、move、unpackを利用します。
「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,etable.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)) -- ytable.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 9table.concat
table.concat(t, sep, i, j) は、配列要素を結合して文字列にします。要素は文字列または数値である必要があります。
local words = {"Hello", "world", "from", "Lua"}
print(table.concat(words, " ")) -- Hello world from Luatable.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,4table.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 20table.pack
table.pack(...) は可変長引数をテーブルにまとめ、n フィールドに nil を含む引数の総数を格納します。
local function allArgs(...)
local t = table.pack(...)
print("count:", t.n)
return t
end
allArgs(1, nil, 3) -- count: 3insert/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,5table ライブラリに関する質問
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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- mathライブラリ関数
- tableライブラリ関数
- osとioライブラリ
- debugライブラリ