許多資料結構的常見需求是返回值。此文章將探討使用 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("Your place in line is " .. placeInLine)
典型搜尋範例
你有沒有在家中搜尋過丟失的寵物?在自己的代碼中,有一個名為 house 的函數可以搜尋通過一個名為 house 的字典來查看哪個房間有丟失的小狗。
複製下面的字典作為房屋。
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}創建名為 findPet() 的新函數來搜尋字典。包括搜尋字典的參數和搜尋值。
使用 pairs() 來在字典中掃索。試著先在解決方案下檢查您的工作。
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendend隨著 for 反復掃描字典,使用 return 來返回寵物在該寵物的房間。
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend