Powszechnym potrzebą w wielu strukturach danych jest zwracanie wartości. Ten artykuł omówi szukanie tabeli używając pairs() lub ipairs() dla połowy dowolnego elementu tabeli, takiego jak klucz lub wartość, aby znaleźć i zwrócić pozostałą połowę.
Przykład używa listy arkuszy, które czekają na naprawę. ipairs() służy do powrotu miejsca statku w linii.
local shipToFind = "Void Racer"
-- stateczniki czekają na naprawę
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Zdobądź miejsce w linii
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Drukuj miejsce w linii
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)
Przykład wyszukiwania słowa典
Czy kiedykolwiek szukałeś zaginionego zwierzaka w domu, poszukując pokój po pokoju? Sam w kodzie funkcję szukania w słowniku zwierzaków nazyającym się dom, aby zobaczyć, który pokój ma zaginiony szczeniak.
Kopiuj słownik poniżej, aby działał jako dom.
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}Utwórz nową funkcję nazwaną findPet() , aby szukać słownika. Włącz parametry dla tego słownika, a co wartość do szukania.
Użyj pairs() , aby przeszukiwać słownik. Spróbuj zapisać własny przed sprawdzeniem swojej pracy w rozwiązaniu poniżej.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendPodczas gdy for loop przetwarza poprzez 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