Menu
Coddy logo textTech

Iterar con pairs()

Parte de la sección Lógica y flujo de control del Journey de Lua de Coddy. Lección 1 de 54.

Al trabajar con tablas de estilo diccionario en Lua, a menudo necesitas acceder a cada par clave-valor almacenado en su interior. La función pairs() lo hace posible al permitirte recorrer todas las entradas de una tabla, independientemente del tipo de claves.La sintaxis para usar pairs() en un bucle for tiene este aspecto:
for key, value in pairs(myTable) do
    -- usa key y value aquí
end
Durante cada iteración del bucle, pairs() proporciona tanto la clave como su valor correspondiente. Esto significa que puedes acceder a ambas piezas de información y trabajar con ellas al mismo tiempo.Aquí tienes un ejemplo práctico con el inventario de un jugador:
local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end
Este código imprimirá el nombre de cada artículo y su cantidad. La función pairs() funciona con cualquier tipo de clave, incluidas cadenas, números o incluso otras tablas.Trabajar con stringsEn Lua, puedes unir strings usando el operador de concatenación, que son dos puntos (..). Por ejemplo, "Hello" .. " " .. "World" da como resultado "Hello World".Si necesitas dar formato al texto en varias líneas, puedes usar el carácter de escape de nueva línea, "\n". Cuando Lua encuentra "\n" dentro de una cadena, lo trata como una instrucción para pasar a la siguiente línea.Por ejemplo, print("Line 1\nLine 2") generará:
Line 1
Line 2
challenge icon

Desafío

Fácil

Escribe una función printInventory que tome una tabla inventory y devuelva una cadena con formato que enumere todos los elementos y sus cantidades.

Usa pairs() para iterar por la tabla de inventario y construir una cadena en la que cada línea muestre un nombre de elemento seguido de su cantidad con el formato item: quantity. Cada elemento debe estar en una línea separada.

Para colocar cada elemento en su propia línea, usa el carácter de nueva línea "\n" entre las entradas. Por ejemplo, "apple: 5\nbanana: 3" se mostrará como dos líneas separadas. Ten cuidado de no añadir un "\n" inicial antes del primer elemento: añádelo únicamente entre los elementos.

Parámetros:

  • inventory (tabla): Una tabla con estilo de diccionario donde las claves son nombres de elementos (cadenas) y los valores son cantidades (números)

Devuelve: Una cadena con cada elemento y cantidad en una línea separada, separados por "\n". Ejemplo de salida para {apple=5, banana=3}:
apple: 5
banana: 3

Pruébalo tú mismo

function printInventory(inventory)
    -- Para formatear la salida, puedes concatenar cadenas usando el operador '..'.
    -- Para añadir una nueva línea, usa el carácter especial '\n'.
    -- Podrías necesitar una forma de rastrear si estás añadiendo el primer elemento o uno posterior
    -- para decidir si añadir una nueva línea antes del elemento.
    
    -- Escribe el código aquí
end
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo de control

Practica por tu cuenta: Compilador de Lua online