Restituire valori dalle tabelle

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Un'esigenza comune in molte strutture dati è restituire valori. Questo articolo tratterà la ricerca in una tabella utilizzando pairs() o ipairs() per restituire metà di un qualsiasi elemento della tabella, come la chiave o il valore, al fine di trovare e restituire l'altra metà.

L'esempio utilizza un array che elenca le navi in attesa di essere riparate. ipairs() viene utilizzato per restituire il posto di una nave in fila.


local shipToFind = "Void Racer"
-- Navi in attesa di riparazione
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Ottieni il posto in fila
local function getPlaceInLine(shipName)
for placeInLine, ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Stampa il posto in fila
local placeInLine = getPlaceInLine(shipToFind)
print("Il tuo posto in fila è " .. placeInLine)

Esempio di ricerca in un dizionario

Hai mai cercato un animale domestico smarrito in casa, stanza per stanza? Codifica da solo una funzione per cercare in un dizionario chiamato house per vedere in quale stanza si trova un cucciolo smarrito.

  1. Copia il dizionario qui sotto per fungere da casa.


    local house = {
    kitchen = "mucchio di rottami",
    livingRoom = "gattino",
    bedroom1 = "nessuno lì",
    bedroom2 = "cucciolo",
    }
  2. Crea una nuova funzione chiamata findPet() per cercare nel dizionario. Includi parametri per quale dizionario cercare e quale valore cercare.

  3. Usa pairs() per iterare nel dizionario. Prova a codificare la tua versione prima di controllare il tuo lavoro nella soluzione qui sotto.


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    end
    end
  4. Man mano che il ciclo for itera attraverso il dizionario, usa return per restituire la stanza in cui è stato trovato l'animale domestico.


    local function findPet(whereToSearch, searchFor)
    for place, value in pairs(whereToSearch) do
    if value == searchFor then
    return place
    end
    end
    end
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.