Rückgabe von Werten aus Tabellen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Ein gemeinsamer Bedarf in vielen Datenstrukturen besteht darin, Werte zurückzugeben.Dieser Artikel wird die Suche nach einem Element in einer Tabelle mit pairs() oder ipairs() für die Hälfte eines Elements wie Schlüssel oder Wert abdecken, um die andere Hälfte zu finden und zurückzugeben.

Das Beispiel verwendet eine Liste von Schiffen, die auf Reparatur warten. ipairs() wird verwendet, um den Platz eines Schiffs in der Reihe zurückzugeben.


local shipToFind = "Void Racer"
-- Schiffe warten auf Reparatur
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Erhalte Platz in der Reihe
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Druckplatz in der Reihe
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)

Beispiel für die Suche nach einem Wörterbuch

Hast du jemals nach einem verlorenen Haustier in einem Haus gesucht, das Zimmer für Zimmer geht? Auf deinem eigenen Code eine Funktion, die durch ein Wörterbuch mit dem Namen Haus sucht, um zu sehen, welches Zimmer einen verlorenen Welpen enthält.

  1. Kopiere das folgende Wörterbuch, um als Haus zu agieren.


    local house = {
    kitchen = "pile of Junk",
    livingRoom = "kitten",
    bedroom1 = "nobody there",
    bedroom2 = "puppy",
    }
  2. Erstelle eine neue Funktion mit dem Namen findPet(), um das Wörterbuch zu durchsuchen. Füge Parameter für das zu durchsuchende Wörterbuch und den zu suchenden Wert hinzu.

  3. Verwende pairs(), um durch das Wörterbuch zu iterieren. Versuche, dein eigenes zu codieren, bevor du deine Arbeit in der Lösung unten überprüfst.


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    end
    end
  4. Während die for-Schleife durch das Wörterbuch iteriert, verwende return, um den Raum zurückzugeben, in dem das Haustier gefunden wurde.


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    if value == searchFor then
    return place
    end
    end
    end