從表返回值

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

許多數據結構中的一個常見需求是返回值。本文將探討使用 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)

字典搜尋範例

你有沒有過在房屋裡尋找丟失的寵物?在你自己的代碼中,寫一個函數來搜索字典名為房屋的房間,看看哪個房間有丟失的小狗。

  1. 複製下面的字典以作為房屋。


    local house = {
    kitchen = "pile of Junk",
    livingRoom = "kitten",
    bedroom1 = "nobody there",
    bedroom2 = "puppy",
    }
  2. 創建一個新的函數 findPet() 來搜索辭典。包括要搜搜尋的辭典以及要搜索的值。

  3. 使用 pairs() 來循環字典。試試在下面的解決方案中先編寫自己的代碼,然後檢查您的工作。


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    end
    end
  4. 當迴圈循環通過辭典時,使用 return 傳回寵物被找到的房間。


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    if value == searchFor then
    return place
    end
    end
    end