第9回 配列(テーブル)

配列(テーブル)とは

Luaにおいて、テーブル(table)は、キーと値のペアの集合体であり、データを格納するための非常に便利なデータ構造です。テーブルは、配列や連想配列のように使用することができます。

テーブルは、中かっこ({})で囲んで作成します。以下は、テーブルの作成例です。

-- テーブルを作成
local myTable = {
    key1 = "value1",
    key2 = "value2",
    key3 = "value3"
}

-- テーブルの値を表示
print(myTable["key1"])  -- "value1"が表示されます
print(myTable.key1)  -- "value1"が表示されます

myTableというテーブルを作成し、3つのキーと値のペアを持っています。テーブルの値には、インデックス(key1、key2、key3)またはドット表記(myTable.key1, myTable.key2, myTable.key3)を使用してアクセスすることができます。

テーブルは、配列としても使用できます。以下は、配列としてのテーブルの使用例です。

local myTable = {
    "apple",
    "banana",
    "orange"
}

-- テーブルの値を表示
print(myTable[1])  -- "apple"が表示されます
print(myTable[2])  -- "banana"が表示されます

myTableというテーブルを作成し、3つの値を持っています。テーブルの値には、配列と同様にインデックスを使用してアクセスすることができます。

テーブルに値を追加、削除する機能として、table.insertとtable.removeがあります。
table.insert は、テーブルの要素を追加します。
table.remove は、テーブルの要素を削除します。

table.insert

table.insertは、指定したテーブルの末尾に新しい要素を追加するための関数です。以下は、使用方法の例です。

local myTable = {
    "apple",
    "banana",
    "orange"
}

-- 新しい要素を追加
table.insert(myTable, "grape")

-- myTableの内容を表示
for i, v in ipairs(myTable) do
  print(i, v)
end

この場合、myTableの末尾に”grape”という新しい要素が追加されます。その後、forループを使用して、myTableの内容を表示しています。

table.remove

table.removeは、指定したテーブルから要素を削除するための関数です。以下は、使用方法の例です。

local myTable = {
    "apple",
    "banana",
    "orange"
}

-- 2番目の要素を削除
table.remove(myTable, 2)

-- myTableの内容を表示
for i, v in pairs(myTable) do
  print(i, v)
end

この場合、myTableから2番目の要素である”banana”が削除されます。その後、forループを使用して、myTableの内容を表示しています。

注意:table.removeを使用する場合、削除する要素の位置を指定する必要があります。また、削除された要素の後ろの要素が前に詰められるため、テーブルのインデックスが変わる可能性があります。

table.sort

数値が大きい方を昇順にして並べるには、数値を比較して並び替える必要があります。

-- 数値の配列を作成
local myTable = {
    10,
    50,
    20,
    80,
    30,
    90
}

-- 数値を昇順にソート
table.sort(myTable, function(a, b) return a > b end)

-- ソート後の数値を表示
for i, v in ipairs(myTable) do
  print(i, v)
end

この場合、まず数値の配列を作成し、その後、table.sort関数を使用して数値を昇順にソートしています。table.sort関数は、ソートする対象のテーブルを第1引数に、比較関数を第2引数に受け取ります。この例では、比較関数でa > bとしているため、数値が大きい方が前に来るようにソートされます。

最後に、forループを使用して、ソート後の数値を表示しています。このプログラムを実行すると、以下のような結果が表示されます。

90
80
50
30
20
10

このように、数値が大きい方から昇順に並び替えられた結果が表示されます。

コメント

タイトルとURLをコピーしました