多くのデータ構造で一般的に必要なことは、値を返すことです。この記事では、テーブルの要素の半分(キーまたは値)を見つけて他の半分を返すために、pairs()またはipairs()を使用してテーブルを検索する方法について説明します。
この例では、修理を待っている船をリストする配列を使用します。ipairs()は船の列における場所を返すために使用されます。
local shipToFind = "Void Racer"
-- 修理を待っている船
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- 列における場所を取得
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--列における場所を印刷
local placeInLine = getPlaceInLine(shipToFind)
print("あなたの列における場所は " .. placeInLine)
辞書検索の例
失くしたペットを家の中で部屋ごとに探したことはありますか?あなた自身のコードで、失くした子犬がどの部屋にいるかを確認するために、houseという名前の辞書を検索する関数を作成してください。
以下の辞書をコピーして家として使ってください。
local house = {kitchen = "ガラクタの山",livingRoom = "子猫",bedroom1 = "誰もいない",bedroom2 = "子犬",}辞書を検索するためのfindPet()という新しい関数を作成します。検索する辞書と検索する値のためのパラメータを含めます。
pairs()を使用して辞書を反復処理します。以下の解決策を見る前に、自分でコーディングしてみてください。
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendforループが辞書を反復処理する際に、returnを使用してペットが見つかった部屋を返します。
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend