Lua 配列(テーブル型)のサンプル

目次

確認環境:Windows10 64bit、Lua 5.4.1

テーブルに値を設定する(初期化)

tbl = {"red","yellow","blue"}

print(tbl[1]) -- red
print(tbl[2]) -- yellow
print(tbl[3]) -- blue

テーブルの設定は、値を波括弧(なみかっこ)で囲みます。
最初の添字は1から始まります。

テーブルに添え字を指定して値を設定する

tbl = {}
tbl[1] = "red"
tbl[2] = "yellow"
tbl[3] = "blue"

print(tbl[1]) -- "red"
print(tbl[2]) -- "yellow"
print(tbl[3]) -- "blue"

2~4行目は、添字を指定して値を設定しています。

テーブルの値をfor文で取得する

tbl = {"red","yellow","blue"}

for i = 1 , #tbl do
	print(tbl[i]) -- red yellow blueが出力される
	print(i) -- 1 2 3が出力される
end

for文は、指定した値の分処理を繰り返します。

要素数を取得する

tbl = {"red","yellow","blue"}

print(#tbl) -- 3

要素数はシャープ(#)を指定します。

テーブルの値を変更する

tbl = {"red","yellow","blue"}
tbl[2] = "orange"

print(tbl[1]) -- "red"
print(tbl[2]) -- "orange"
print(tbl[3]) -- "blue"

値の変更は、添字を指定して値を代入します。

テーブルの値を追加する

tbl = {"red","yellow","blue"}
table.insert(tbl, "orange")

print(tbl[1]) -- "red"
print(tbl[2]) -- "yellow"
print(tbl[3]) -- "blue"
print(tbl[4]) -- "orange"

table.insertは、末尾に値を追加します。

テーブルの値を削除する

tbl = {"red","yellow","blue"}
table.remove(tbl)

print(tbl[1]) -- "red"
print(tbl[2]) -- "yellow"
print(tbl[3]) -- nil

removeは、末尾の値を削除します。

テーブルの値をソートする

a = {100,2,99}
table.sort(a)

print(a[1]) -- 2
print(a[2]) -- 99
print(a[3]) -- 100

b = {"da","abb","pccc"}
table.sort(b)

print(b[1]) -- "abb"
print(b[2]) -- "da"
print(b[3]) -- "pccc"

sortは、値を並び替えます。

連想配列(キーに任意の文字列)

tbl = {c1="red",c2="yellow",c3="blue"}

print(tbl["c1"]) -- red
print(tbl["c2"]) -- yellow
print(tbl["c3"]) -- blue

tbl["c4"] = "orange"

print(tbl["c4"]) -- orange

1行目のキー(c1,c2,c3)にはダブルコーテーション(")がつきませんが
3行目以降のキーの指定には、ダブルコーテーションが必要です。

連想配列をfor文で取得する

tbl = {c1="red",c2="yellow",c3="blue"}

for a,b in pairs(tbl) do
	print(a,b) -- c2 yellow c1 red c3 blue
end

4行目は、取得した値を表示していますが表示する順番は毎回変わります。

2次元配列を作成する

tbl = {}
tbl[1] = {}
tbl[2] = {}

tbl[1][1] = "red1"
tbl[1][2] = "yellow1"
tbl[1][3] = "blue1"
tbl[2][1] = "red2"
tbl[2][2] = "yellow2"
tbl[2][3] = "blue2"

print(tbl[1][1]) -- "red1"
print(tbl[2][1]) -- "red2"

1行目は、空のテーブルをセットしています。
2,3行目は、1行目のテーブルに添え字を指定して空のテーブルをセットしています。

関連の記事

Lua if文のサンプル
Lua for文 処理を繰り返すサンプル(break/continue)
Lua while文のサンプル(break/continue)

△上に戻る