Uma necessidade comum em muitas estruturas de dados é retornar valores.Este artigo abordará a busca de uma tabela usando pairs() ou ipairs() para metade de qualquer elemento de tabela, como a chave ou o valor, para encontrar e retornar a outra metade.
O exemplo usa uma lista de arrays de navios esperando para serem reparados. ipairs() é usado para retornar o lugar de um navio na linha.
local shipToFind = "Void Racer"
-- Navios esperando por reparo
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Obtenha lugar na linha
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Imprimir local na linha
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)
Exemplo de busca no dicionário
Você já procurou por um animal de estimação perdido na casa indo de sala em sala? Em seu próprio código, uma função para procurar através de um dicionário chamado casa para ver qual sala tem um cachorrinho perdido.
Copie o dicionário abaixo para agir como a casa.
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}Crie uma nova função chamada findPet() para pesquisar o dicionário. Inclua parâmetros para qual dicionário pesquisar e para qual valor pesquisar.
Use pairs() para iterar pelo dicionário. Tente codificar o seu próprio antes de verificar seu trabalho na solução abaixo.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendÀ medida que o loop for itera através do dicionário, use return para passar de volta a sala onde o animal de estimação foi encontrado.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend