Menu
CoddyTech

table.unpack

Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 21 de 80.

Às vezes, você tem valores em um array, mas precisa deles como valores separados: por exemplo, para passar cada elemento como seu próprio argumento. É para isso que serve table.unpack: ele retorna todos os elementos de um array, separados.

local scores: {number} = {85, 92, 78}
print(table.unpack(scores))           -- 85  92  78 (uma linha)
print(math.max(table.unpack(scores))) -- 92

print recebe três argumentos, então os imprime em uma linha, com uma tabulação entre eles. math.max precisa de números separados, não de um array, então é o desempacotamento que faz a chamada funcionar.

table.unpack lê o array sem alterá-lo. A outra direção, uma função que recebe qualquer quantidade de argumentos com ..., é abordada na lição sobre Funções Variádicas do próximo capítulo.

challenge icon

Desafio

Fácil

Expanda um array de pontuações em valores separados.

  1. Declare local scores: {number} = {64, 88, 71}.
  2. Imprima table.unpack(scores).
  3. Imprima math.max(table.unpack(scores)).

Pressione Executar código: a saída mostra 64 88 71 em uma linha e, em seguida, 88.

Experimente você mesmo

-- 1) declare scores: {number} = {64, 88, 71}
-- 2) imprima os valores de scores desempacotados e, em seguida, o math.max deles

Todas as lições de Introdução ao Luau

Pratique por conta própria: Compilador de Luau online