Arrays Tipados
Parte da seção Introdução ao Luau do Journey de Lua da Coddy — lição 13 de 73.
Typed arrays são um dos recursos mais úteis do Luau para organizar múltiplos valores mantendo a segurança de tipos.
Em Lua, um array é apenas uma tabela com valores nas posições 1, 2, 3, … — e ela aceitará tranquilamente um number, uma string e um boolean, todos de uma vez. O Luau permite declarar que uma tabela deve conter apenas elementos de um único tipo, usando a sintaxe {Type}:
local numbers: {number} = {1, 2, 3, 4, 5}
local names: {string} = {"Alice", "Bob", "Charlie"}
local flags: {boolean} = {true, false, true}Quando você declara um typed array, o verificador de tipos do Luau garante que apenas valores do tipo declarado entrem nele. Se você tentar inserir uma string em um array de {number}, receberá um tipo de erro (type error) enquanto edita — antes mesmo de o código ser executado:
local scores: {number} = {85, 90, 78}
table.insert(scores, "oops") -- ✗ erro de tipo: string não é um numberTudo o que você já sabe sobre tabelas em Lua ainda se aplica: arrays são 1-based (baseados em 1) (scores[1] é o primeiro elemento), #scores é o tamanho, e table.insert / table.remove funcionam como de costume. A anotação adiciona segurança, não um novo comportamento em tempo de execução.
Desafio
FácilCrie um array tipado chamado scores que só pode conter números, inicializado com 85, 92 e 78.
Crie um segundo array tipado chamado studentNames que só pode conter strings, inicializado com "Alice", "Bob" e "Charlie".
Em seguida, imprima, cada um em sua própria linha:
- o primeiro score
- quantos scores existem (use
#) - o segundo student name
Experimente você mesmo
-- Escreva o código aqui
-- 1) declare scores: {number} e studentNames: {string}
-- 2) imprima o primeiro score, a contagem de scores e o segundo nome
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
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
Tipando Parâmetros e Valores de RetornoTipando Funções AnônimasFunções que Não Retornam NadaParâmetros OpcionaisValores Padrão para ParâmetrosFunções VariádicasDefinindo Tipos de FunçõesRecapitulação: Funções Tipadas2Tipos Fundamentais
Tipos Básicos: num, str, boolO Tipo 'any': Escape HatchO Tipo 'unknown'Tipos Nil e OpcionaisInferência de Tipos na PráticaAnotações Explícitas de TiposReciclagem: Prática de Tipos Fundamentais5Aliases, 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 MapsIterando Sobre TabelasTabelas de Formato MistoArrays Tipados Multidimensionaistable.unpack e VarargsRecapitulando: Arrays e Maps