Retour des valeurs des tables

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Un besoin commun dans de nombreuses structures de données est de retourner des valeurs.Cet article couvrira la recherche d'une table en utilisant pairs() ou ipairs() pour la moitié de n'importe quel élément de table, comme la clé ou la valeur, pour trouver et retourner l'autre moitié.

L'exemple utilise une liste d'array de navires en attente de réparation. ipairs() est utilisé pour retourner la place d'un navire dans la ligne.


local shipToFind = "Void Racer"
-- Bateaux en attente de réparation
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Obtenir une place en ligne
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Imprimer l'endroit en ligne
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)

Exemple de recherche dans le dictionnaire

Avez-vous déjà recherché un animal perdu dans la maison en allant de pièce en pièce ? Dans votre propre code, une fonction pour rechercher à travers un dictionnaire nommé maison pour voir dans quelle pièce se trouve un chiot perdu.

  1. Copiez le dictionnaire ci-dessous pour agir comme la maison.


    local house = {
    kitchen = "pile of Junk",
    livingRoom = "kitten",
    bedroom1 = "nobody there",
    bedroom2 = "puppy",
    }
  2. Créez une nouvelle fonction appelée findPet() pour rechercher le dictionnaire. Incluez des paramètres pour le dictionnaire à rechercher et la valeur à rechercher.

  3. Utilisez pairs() pour itérer à travers le dictionnaire. Essayez de coder le vôtre avant de vérifier votre travail dans la solution ci-dessous.


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    end
    end
  4. Pendant que la boucle for itère à travers le dictionnaire, utilisez return pour retourner la salle où l'animal a été trouvé.


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