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 MapsPratique por conta própria: Compilador de Lua online