目次
01. 値を設定する
02. 値を操作する
03. 連想配列、2次元配列
確認環境: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)