在许多数据结构中,返回值是一个常见需求。本文将介绍如何使用 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("您的排队位置是 " .. placeInLine)
字典搜索示例
你是否曾经在家中逐个房间寻找失踪的宠物?在你自己的代码中编写一个函数,搜索名为 house 的字典,查看哪个房间藏着失踪的小狗。
复制下面的字典,作为房子。
local house = {kitchen = "一堆垃圾",livingRoom = "小猫",bedroom1 = "没有人",bedroom2 = "小狗",}创建一个名为 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