許多數據結構中的一個常見需求是返回值。本文將探討使用 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)
字典搜尋範例
你有沒有過在房屋裡尋找丟失的寵物?在你自己的代碼中,寫一個函數來搜索字典名為房屋的房間,看看哪個房間有丟失的小狗。
複製下面的字典以作為房屋。
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當迴圈循環通過辭典時,使用 return 傳回寵物被找到的房間。
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend