table.concatとtable.move
組み込み関数を使って配列を効率的に連結し、テーブルの一部をコピーします。
「table.concatとtable.move」はCoddyKit上の無料Lua Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLua Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Lua Academyコースには全4レッスンが含まれています。
table.concatの基本
table.concat(t, sep, i, j)は、配列要素を結合して文字列にします。sepのデフォルト値は""です。
単純な結合
区切り文字を使って文字列の配列を結合します。
local fruits = {"apple", "banana", "cherry"}
print(table.concat(fruits, ", ")) -- apple, banana, cherryiとjによる部分結合
配列の一部を結合するために、開始インデックスと終了インデックスを指定します。
local t = {"a", "b", "c", "d", "e"}
print(table.concat(t, "-", 2, 4)) -- b-c-dtable.concat内の数値
要素は文字列または数値でなければならず、それ以外の型を指定するとエラーになります。先にtostringで変換してください。
local nums = {1, 2, 3}
print(table.concat(nums, " + ")) -- 1 + 2 + 3table.moveの概要
table.move(a1, f, e, t, a2)は、テーブルa1の要素(インデックスf..e)を、インデックスtからテーブルa2へコピーします。
スライスのコピー
1つのテーブルの要素2から4を、別のテーブルへコピーします。
local src = {10, 20, 30, 40, 50}
local dst = {}
table.move(src, 2, 4, 1, dst)
print(table.concat(dst, ", ")) -- 20, 30, 40その場でのシフト
同じテーブルをコピー元とコピー先に指定してtable.moveを使うと、テーブル内で要素を移動できます。
local t = {1, 2, 3, 4, 5}
table.move(t, 2, 5, 1) -- shift left by 1
t[5] = nilスライスの追加
1つのテーブルのスライスを、別のテーブルの末尾へ効率的に追加します。
local base = {"x", "y"}
local extra = {"a", "b", "c"}
table.move(extra, 1, #extra, #base + 1, base)
print(table.concat(base, ", "))table.moveによるテーブルの複製
テーブル全体を新しいテーブルへ移動することで、浅い複製を作成できます。
local original = {1, 2, 3}
local clone = {}
table.move(original, 1, #original, 1, clone)パフォーマンス上の利点
table.moveはCで実装されているため、大きなスライスでは要素ごとのインタープリターのオーバーヘッドを避けられ、手動のLuaループより高速です。
table.concatとstring.format
配列の結合にはtable.concatを使用し、個々の値を構造化して整形するにはstring.formatを使用します。
table.moveに関する質問
table.move(src, 2, 4, 1, dst)は何をしますか?
まとめ:concatとmove
table.concatは配列要素を文字列に結合します。table.moveはテーブルのスライスをCで効率的にコピーします。どちらも、高性能なテーブル操作に欠かせません。
よくある質問
「table.concatとtable.move」レッスンは無料ですか?
はい。「table.concatとtable.move」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Lua Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Lua Academyコースには全4レッスンが含まれています。
「table.concatとtable.move」で何を学びますか?
組み込み関数を使って配列を効率的に連結し、テーブルの一部をコピーします。 ブラウザで直接実行するハンズオンコードでLua Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Lua Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLua Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「table.concatとtable.move」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLua Academyレッスンでコードを書いて実行できますか?
はい。すべてのLua Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- コンパレーターによるtable.sort
- table.concatとtable.move
- ディープコピーとシャローコピー
- テーブルの変換:map、filter、reduce