📖

Luaでテーブル内テーブルを記述するときの書き方

2024/07/24に公開

今回はLuaでテーブル型の要素を持つテーブルを書くときの書き方をまとめます。

要素のテーブルにはキーと値のペアを持つオブジェクト形式で定義しよう

テーブル型データをまとめたテーブルを定義する際は、以下のような形式での定義が好ましいです。

local table = {
    {Name = "a", Value = 1},
    {Name = "b", Value = 2},
    {Name = "c", Value = 3},
}

具体例で確認してみましょう。

例(キャラ名と戦闘力を持つモンスターのテーブル)

今回は以下のようなテーブル型データをまとめたテーブルを書きましょう。

Name Value
Pikachu 50
Ivui 30
Koiking 1
Myutsu 999

これをLuaで書くときは以下のように書きます。

local monsters = {
    {Name = "Pikachu", Value = 50},
    {Name = "Ivui", Value = 30},
    {Name = "Koiking", Value = 1},
    {Name = "Myutsu", Value = 999},
}

for i = 1, #monsters do
    print(list[i].Name, list[i].Value) -- monstersのキャラ名と戦闘力を表示
end

この書き方だとコードを見ただけで要素の何を取得しているのかが一目瞭然です。

以下のようにも書けますが、要素のNameやValueを取得するときに何が何かわからなくなるので、上記の方がデータの意味が明確でいいと思います。

local monsters = {
    {"Pikachu", 50},
    {"Ivui", 30},
    {"Koiking", 1},
    {"Myutsu", 999},
}

for i = 1, #monsters do
    print(list[i][1], list[i].[2]) -- monstersのキャラ名と戦闘力を表示
end

一つ前のコードと処理の内容は同じですが、インデックスばかりでコードが理解しにくくなってしまいます。

まとめ

簡単ですが、テーブル型のデータをテーブルで定義する際の理解しやすい書き方を紹介しました。

最近どうすれば読みやすいコードが書けるかをトライアンドエラーで試しているので、こういった些細なことでもこまめに記事にしていこうと思います。

Discussion