Menu
Coddy logo textTech

Construção de tabelas e unpack()

Parte da seção Lógica e Fluxo do Journey de Lua da Coddy. Lição 6 de 54.

Lua oferece um par complementar de técnicas para trabalhar com múltiplos valores: construção de tabelas e unpack(). Elas são particularmente úteis ao trabalhar com funções que precisam lidar com argumentos flexíveis.Você pode capturar vários valores em uma tabela no estilo de lista usando a sintaxe de construtor de tabela com chaves. Isso reúne todos os valores em uma única estrutura de tabela.
local args = {10, 20, 30}
print(args[1])  -- Saída: 10
print(#args)    -- Saída: 3
A função unpack() faz o oposto. Ela recebe uma tabela no estilo de lista e retorna todos os seus elementos como valores separados. Isso permite passar o conteúdo da tabela como argumentos individuais para uma função.Importante: Embora versões mais recentes do Lua (5.2+) tenham movido essa função para table.unpack(), este ambiente executa Lua 5.1, portanto você deve usar a função global unpack().
local numbers = {5, 10, 15}
print(unpack(numbers))  -- Saída: 5    10    15
Essas técnicas funcionam juntas de forma integrada. Você pode coletar valores em uma tabela, manipular a tabela e, em seguida, desempacotá-la novamente em valores individuais.
challenge icon

Desafio

Fácil

Escreva uma função forwardArguments que receba três números a, b e c e retorne a soma deles usando a construção de uma tabela e unpack().

Crie uma tabela contendo os três argumentos usando a sintaxe {a, b, c}; em seguida, desempacote-os e passe-os para outra função que calcula a soma deles.

Observação: Use a função global unpack() em vez de table.unpack() para garantir a compatibilidade com este ambiente.

Lógica:

  • Use {a, b, c} para criar uma tabela contendo os três argumentos
  • Crie uma função separada chamada sum que receba três parâmetros e retorne a soma deles
  • Use unpack() para passar os valores da tabela para a função sum
  • Retorne o resultado da função sum

Parâmetros:

  • a (number): Primeiro número
  • b (number): Segundo número
  • c (number): Terceiro número

Retorna: A soma dos três números (number)

Experimente você mesmo

function forwardArguments(a, b, c)
    -- Crie uma função separada que calcula a soma

    -- Crie uma tabela contendo todos os três argumentos

    -- Desempacote a tabela e passe os valores para a função de soma
    -- Dica: Use a função global 'unpack' para expandir os argumentos da tabela

end
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica e Fluxo

Pratique por conta própria: Compilador de Lua online