许多数据结构中的常见需求是返回值。此文章将探讨使用 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 的函数可以搜索通过名为房屋的字典来查看哪个房间有丢失的小狗。
复制下面的字典作为房子。
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当 for 循环通过字典时,使用 return 来返回发现宠物的房间。
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend