📖
Luaでテーブル内テーブルを記述するときの書き方
今回は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