Powszechną potrzebą w wielu strukturach danych jest powrót wartości.Ten artykuł obejmie wyszukiwanie tabeli za pomocą pairs() lub ipairs() dla połowy dowolnego elementu tablicy, takiego jak klucz lub wartość, aby znaleźć i zwrócić drugą połowę.
Przykład używa listy array zawierającej statki czekające na naprawę. ipairs() jest używany do zwrotu miejsca statku w linii.
local shipToFind = "Void Racer"
-- Statki czekające na naprawę
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Zajmij miejsce w kolejce
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Wydrukuj miejsce w linii
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)
Przykład wyszukiwania słownika
Czy kiedykolwiek szukałeś zagubionego zwierzaka w domu, przechodząc z pokoju do pokoju? Na własnym kodzie funkcja, która przeszukuje słownik o nazwie dom, aby zobaczyć, który pokój trzyma zagubionego szczeniaka.
Skopiuj słownik poniżej, aby działał jako dom.
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}Stwórz nową funkcję o nazwie findPet(), aby wyszukać słownik. Włącz parametry dla tego słownika, który ma zostać wyszukiwać, oraz wartość, którą należy wyszukać.
Użyj pairs() , aby przeszukiwać słownik. Spróbuj skodować własny przed sprawdzeniem swojej pracy w rozwiązaniu poniżej.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendW miarę powtarzania się pętla for przez słownik, użyj return, aby przekazać pokój, w którym znaleziono zwierzaka.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend