从表中返回值

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

字典搜索示例

你有没有在家中搜索过失去的宠物?在自己的代码中,有一个名为 house 的函数可以搜索通过名为房屋的字典来查看哪个房间有丢失的小狗。

  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. 当 for 循环通过字典时,使用 return 来返回发现宠物的房间。


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