Luaのテーブル型のサンプルです。
確認環境 ・Lua 5.4.1 |
目次
サンプル | テーブルに値を設定する(初期化) |
テーブルに添え字を指定して値を設定する | |
テーブルの値をfor文で取得する | |
要素数を取得する | |
テーブルの値を変更する | |
テーブルの値を追加する | |
テーブルの値を削除する | |
テーブルの値をソートする | |
連想配列(キーに任意の文字列) | |
連想配列をfor文で取得する | |
2次元配列を作成する |
テーブルに値を設定する(初期化)
tbl = {"赤","黄","青"}
print(tbl[1]) -- 赤
print(tbl[2]) -- 黄
print(tbl[3]) -- 青
テーブルの設定は、値を波括弧(なみかっこ)で囲みます。
最初の添字は1から始まります。
テーブルに添え字を指定して値を設定する
tbl = {}
tbl[1] = "赤"
tbl[2] = "黄"
tbl[3] = "青"
print(tbl[1]) -- "赤"
print(tbl[2]) -- "黄"
print(tbl[3]) -- "青"
2~4行目は、添字を指定して値を設定しています。
テーブルの値をfor文で取得する
tbl = {"赤","黄","青"}
for i = 1 , #tbl do
print(tbl[i]) -- 赤 黄 青が出力される
print(i) -- 1 2 3が出力される
end
for文は、指定した値の分処理を繰り返します。
要素数を取得する
tbl = {"赤","黄","青"}
print(#tbl) -- 3
要素数はシャープ(#)を指定します。
テーブルの値を変更する
tbl = {"赤","黄","青"}
tbl[2] = "オレンジ"
print(tbl[1]) -- "赤"
print(tbl[2]) -- "オレンジ"
print(tbl[3]) -- "青"
値の変更は、添字を指定して値を代入します。
テーブルの値を追加する
tbl = {"赤","黄","青"}
table.insert(tbl, "オレンジ")
print(tbl[1]) -- "赤"
print(tbl[2]) -- "黄"
print(tbl[3]) -- "青"
print(tbl[4]) -- "オレンジ"
table.insertは、末尾に値を追加します。
テーブルの値を削除する
tbl = {"赤","黄","青"}
table.remove(tbl)
print(tbl[1]) -- "赤"
print(tbl[2]) -- "黄"
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="赤",c2="黄",c3="青"}
print(tbl["c1"]) -- 赤
print(tbl["c2"]) -- 黄
print(tbl["c3"]) -- 青
tbl["c4"] = "オレンジ"
print(tbl["c4"]) -- オレンジ
1行目のキー(c1,c2,c3)にはダブルコーテーション(")がつきませんが
3行目以降のキーの指定には、ダブルコーテーションが必要です。
連想配列をfor文で取得する
tbl = {c1="赤",c2="黄",c3="青"}
for a,b in pairs(tbl) do
print(a,b) -- c2 黄 c1 赤 c3 青
end
4行目は、取得した値を表示していますが表示する順番は毎回変わります。
2次元配列を作成する
tbl = {}
tbl[1] = {}
tbl[2] = {}
tbl[1][1] = "赤1"
tbl[1][2] = "黄1"
tbl[1][3] = "青1"
tbl[2][1] = "赤2"
tbl[2][2] = "黄2"
tbl[2][3] = "青2"
print(tbl[1][1]) -- "赤1"
print(tbl[2][1]) -- "赤2"
1行目は、空のテーブルをセットしています。
2,3行目は、1行目のテーブルに添え字を指定して空のテーブルをセットしています。
関連の記事
Lua if文のサンプル
Lua for文 処理を繰り返すサンプル(break/continue)
Lua while文のサンプル(break/continue)