Una necesidad común en muchas estructuras de datos es devolver valores. Este artículo cubrirá la búsqueda de una tabla usando pairs() o ipairs() para encontrar y devolver la otra mitad de cualquier elemento de la tabla, como la clave o el valor.
El ejemplo usa una lista de barcos que esperan ser reparados. ipairs() se usa para devolver el lugar de un barco en la línea.
local shipToFind = "Void Racer"
-- Barcos a la espera de reparación
local waitingShips = {"Battle Sun", "Void Racer", "The Big Slow"}
-- Consigue tu lugar en la fila
local function getPlaceInLine(shipName)
for placeInLine,ship in ipairs(waitingShips) do
if ship == shipName then
return placeInLine
end
end
end
--Imprimir lugar en línea
local placeInLine = getPlaceInLine(shipToFind)
print("Your place in line is " .. placeInLine)
Ejemplo de búsqueda de diccionarios
¿Alguna vez has buscado una mascota perdida en la casa yendo habitación por habitación? En tu propio código una función para buscar a través de un diccionario llamado casa para ver qué habitación contiene un perrito perdido.
Copia el diccionario de abajo para actuar como la casa.
local house = {kitchen = "pile of Junk",livingRoom = "kitten",bedroom1 = "nobody there",bedroom2 = "puppy",}Crea una nueva función llamada findPet() para buscar en el diccionario. Incluye parámetros para qué diccionario buscar y qué valor buscar.
Usa pairs() para iterar a través del diccionario. Intenta codificar tu propio antes de verificar tu trabajo en la solución a continuación.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doendendA medida que el bucle for se itera a través del diccionario, use devolver para pasar por la habitación donde se encontró la mascota.
local function findPet(whereToSearch, searchFor)for place, value in pairs(whereToSearch) doif value == searchFor thenreturn placeendendend