许多数据结构中的一个共同需求是返回值。本文将涵盖使用 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