テーブルとしての配列
Luaの1始まりのインデックスを学びます。
「テーブルとしての配列」はCoddyKit上の無料Lua Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLua Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Lua Academyコースには全4レッスンが含まれています。
テーブルはLuaのリスト
Luaには、コンテナ型としてtableが1つだけあります。値を順番に格納すると、tableは配列やリストのように機能します。
{}で空のtableを作成して後から値を追加することも、波括弧の中に最初から値を並べることもできます。
local fruits = {"apple", "banana", "cherry"}
print(fruits)インデックスは1から始まる
これは最も重要なルールです。Luaの配列は1始まりです。最初の要素は0ではなく、インデックス1に格納されます。
角括弧を使うと、位置を指定して要素を読み取れます。
local fruits = {"apple", "banana", "cherry"}
print(fruits[1])
print(fruits[2])
print(fruits[3])インデックス0は空
数え始める位置が1なので、位置0には通常何も格納されていません。
まだ値を設定していないインデックスを読み取ると、nilが返ります。他の言語から来た初心者が、よくつまずくポイントです。
local colors = {"red", "green", "blue"}
print(colors[0])
print(colors[1])要素を書き込む
ブラケット構文で位置を指定して代入すると、値を設定または置き換えられます。
ここでは2番目のスロットを上書きしています。次にそのインデックスを読み取ると、変更を確認できます。
local scores = {10, 20, 30}
scores[2] = 99
print(scores[2])段階的にtableを作成する
空のtableから始めて、連続したインデックスに要素を追加できます。切れ目のない並びにするため、必ず1から始めてください。
シーケンスには穴がありません。インデックス1、2、3がすべて埋まっています。
local nums = {}
nums[1] = 5
nums[2] = 10
nums[3] = 15
print(nums[1], nums[2], nums[3])異なる型の値
Luaのtableでは、同じシーケンス内に異なる型の値を格納できます。数値、文字列、真偽値などです。
一部の言語のように、すべての要素を同じ型にする必要はありません。
local mixed = {42, "hello", true}
print(mixed[1])
print(mixed[2])
print(mixed[3])すべての要素を表示する
すべての要素を表示するには、数値forループでインデックス1から順にたどります。
後のレッスンでは、より簡潔な方法(ipairs)を学びますが、このループを使うと1始まりの範囲が明確になります。
local pets = {"cat", "dog", "fish"}
for i = 1, 3 do
print(i, pets[i])
endネストしたtable
tableの要素自体をtableにすることもできます。これにより、行、グリッド、グループ化されたデータを構築できます。
ブラケットを連続して書くと内部にアクセスできます。grid[1][2]は1行目2列目を読み取ります(どちらも1始まりです)。
local grid = {
{1, 2, 3},
{4, 5, 6}
}
print(grid[1][2])
print(grid[2][3])位置による最初と最後
最初の要素は常にlist[1]です。サイズがわかっているシーケンスでは、最後の要素はその要素数の位置にあります。
ここでは3つの要素があるため、最後の要素はインデックス3にあります。
local week = {"Mon", "Tue", "Wed"}
print("first:", week[1])
print("last:", week[3])値をその場で変更する
tableは変更可能です。リスト全体を作り直さなくても、既存のスロットを更新できます。
以下では、ループ内で各インデックスに再代入し、すべてのスコアを増やしています。
local scores = {1, 2, 3}
for i = 1, 3 do
scores[i] = scores[i] + 10
end
print(scores[1], scores[2], scores[3])レコードとしてのtableと配列としてのtable
同じtable型に、person.nameのような名前付きキーも格納できます。キーが1、2、3...という整数の場合は、シーケンスまたは配列と呼びます。
このレッスンでは、1始まりの数値キーを使うシーケンス形式に焦点を当てます。
local list = {"a", "b"}
list[3] = "c"
print(list[1], list[2], list[3])理解度チェック
Luaのインデックスについての理解度を確認しましょう。
まとめ
Luaではtableを配列として使い、インデックスは1始まりであることを学びました。最初の要素は[1]にあります。
tableの要素の読み取り、書き込み、ネストができ、きれいなシーケンスには隙間がありません。次は、要素を動的に追加・削除する方法を学びます。
よくある質問
「テーブルとしての配列」レッスンは無料ですか?
はい。「テーブルとしての配列」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Lua Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Lua Academyコースには全4レッスンが含まれています。
「テーブルとしての配列」で何を学びますか?
Luaの1始まりのインデックスを学びます。 ブラウザで直接実行するハンズオンコードでLua Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Lua Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLua Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「テーブルとしての配列」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLua Academyレッスンでコードを書いて実行できますか?
はい。すべてのLua Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- テーブルとしての配列
- 要素を追加・削除する
- ipairsで反復処理する
- 長さとソート