Menu
Coddy logo textTech

Iterar con pairs()

Parte de la sección Logic & Flow 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() hace esto posible al permitirte recorrer todas las entradas de una tabla, independientemente del tipo que sean las claves.

La sintaxis para usar pairs() en un bucle for es la siguiente:

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 y trabajar con ambas piezas de información 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, incluyendo cadenas, números o incluso otras tablas.

challenge icon

Desafío

Fácil

Escribe una función printInventory que reciba una tabla inventory y devuelva una cadena formateada que enumere todos los artículos y sus cantidades.

Usa pairs() para iterar a través de la tabla inventory y construir una cadena donde cada línea muestre el nombre de un artículo seguido de su cantidad en el formato item: quantity. Cada artículo debe estar en una línea separada.

Para colocar cada artículo 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 artículo; solo añádelo entre los artículos.

Parámetros:

  • inventory (table): Una tabla de estilo diccionario donde las claves son nombres de artículos (strings) y los valores son cantidades (numbers)

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

Hoja de referencia

La función pairs() te permite recorrer todos los pares clave-valor en una tabla de tipo diccionario:

for key, value in pairs(myTable) do
    -- usa la clave y el valor aquí
end

Durante cada iteración, pairs() proporciona tanto la clave como su valor correspondiente, permitiéndote acceder a ambas piezas de información simultáneamente.

Ejemplo con una tabla de inventario:

local inventory = {
    sword = 1,
    potion = 5,
    gold = 150
}

for item, quantity in pairs(inventory) do
    print(item .. ": " .. quantity)
end

La función pairs() funciona con cualquier tipo de clave, incluyendo cadenas de texto, números o incluso otras tablas.

Pruébalo tú mismo

function printInventory(inventory)
    -- 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 Logic & Flow