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))) -- 92print 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.
Desafio
FácilExpanda um array de pontuações em valores separados.
- Declare
local scores: {number} = {64, 88, 71}. - Imprima
table.unpack(scores). - 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
1Começando com o Luau
O que é Luau?Por que usar Luau?Seu primeiro código em LuauVerificação de tipos e modos de erroRecapitulando: Introdução ao Luau4Trabalhando com funções
Tipagem de parâmetros e valores de retornoTipagem de funções anônimasFunções sem retornoParâmetros opcionaisValores padrão dos parâmetrosValores padrão para booleanosFunções variádicasDefinindo tipos de funçãoRecapitulação: funções tipadas2Tipos básicos
Número, string e booleanoO tipo 'any': válvula de escapeO tipo 'unknown'Tipos nulos e opcionaisInferência de tipos na práticaAnotações explícitas de tipoRevisão: prática com tipos básicos5Aliases, Uniões, Interseções
Aliases de Tipos para PrimitivosTipos de UniãoTrabalhando com Tipos de UniãoTipos LiteraisTipos de InterseçãoCombinando Aliases de TiposRecapitulando: Combinações Avançadas de Tipos3Tabelas Tipadas: Arrays e Maps
Arrays TipadosAdicionando e Lendo ElementosO que é um Tipo Map?Declarando e Acessando MapsPercorrendo TabelasTabelas com Formatos MistosLendo uma GradeConstruindo uma Gradetable.unpackRevisão: Arrays e MapsPratique por conta própria: Compilador de Luau online