Menu
Coddy logo textTech

Construcción de tablas y unpack()

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

Lua proporciona un par complementario de técnicas para trabajar con múltiples valores: la construcción de tablas y unpack(). Estas son especialmente útiles cuando trabajas con funciones que necesitan un manejo flexible de argumentos.Puedes capturar varios valores en una tabla de estilo lista mediante la sintaxis de constructor de tablas con llaves. Esto recopila todos los valores en una única estructura de tabla.
local args = {10, 20, 30}
print(args[1])  -- Salida: 10
print(#args)    -- Salida: 3
La función unpack() hace lo contrario. Toma una tabla de estilo lista y devuelve todos sus elementos como valores separados. Esto te permite pasar el contenido de una tabla como argumentos individuales a una función.Importante: Aunque las versiones más recientes de Lua (5.2+) trasladaron esta función a table.unpack(), este entorno ejecuta Lua 5.1, por lo que debes usar la función global unpack().
local numbers = {5, 10, 15}
print(unpack(numbers))  -- Salida: 5    10    15
Estas técnicas funcionan juntas a la perfección. Puedes recopilar valores en una tabla, manipular la tabla y después desempaquetarla de nuevo en valores individuales.
challenge icon

Desafío

Fácil

Escribe una función forwardArguments que tome tres números a, b y c, y devuelva su suma utilizando la construcción de tablas y unpack().

Crea una tabla que contenga los tres argumentos utilizando la sintaxis {a, b, c}; después, desempaquétalos y pásalos a otra función que calcule su suma.

Nota: Utiliza la función global unpack() en lugar de table.unpack() para garantizar la compatibilidad con este entorno.

Lógica:

  • Utiliza {a, b, c} para crear una tabla que contenga los tres argumentos
  • Crea una función independiente llamada sum que tome tres parámetros y devuelva su suma
  • Utiliza unpack() para pasar los valores de la tabla a la función sum
  • Devuelve el resultado de la función sum

Parámetros:

  • a (number): Primer número
  • b (number): Segundo número
  • c (number): Tercer número

Devuelve: La suma de los tres números (number)

Pruébalo tú mismo

function forwardArguments(a, b, c)
    -- Crea una función separada que calcule la suma

    -- Crea una tabla que contenga los tres argumentos

    -- Desempaqueta la tabla y pasa los valores a la función de suma
    -- Pista: Usa la función global 'unpack' para expandir los argumentos de la tabla

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