从表返回值

*此内容使用人工智能(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

在此页面