Tabelas com Formatos Mistos
Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 18 de 80.
Arrays armazenam muitos valores de um tipo; mapas armazenam um tipo de chave e um tipo de valor. Mas suas tabelas Lua mais comuns misturam tipos em campos nomeados: um jogador com um nome do tipo string, uma pontuação do tipo number e uma flag do tipo boolean. Luau representa esses tipos com uma forma: um tipo de tabela que lista cada campo e seu próprio tipo.
type Point = {x: number, y: number}
local origin: Point = {x = 0, y = 0}
print(origin.x)A palavra-chave type cria um alias de tipo: um nome reutilizável para a forma. Ele existe apenas para o verificador: nenhum valor em tempo de execução chamado Point é criado. Cada campo pode ter um tipo diferente:
type Player = {name: string, score: number, active: boolean}
local player: Player = {name = "Rio", score = 1500, active = true}
print(`{player.name} has {player.score} points`)Com a forma declarada, o verificador sabe que player.score é um number e aponta erros antecipadamente: um erro de digitação como player.scroe (campo inexistente) ou a atribuição de player.score = "high" (tipo incorreto). Esta é apenas uma primeira amostra: um capítulo posterior se aprofunda muito mais em formas, campos opcionais e métodos.
Desafio
FácilDescreva um jogador com um tipo de formato.
- Escreva
type Player = {name: string, score: number, active: boolean}. - Crie
local player: Player = {name = "Kai", score = 900, active = false}. - Imprima
player.activee, em seguida,`{player.name} has {player.score} points`.
Pressione Run Code: a saída mostra false e Kai has 900 points.
Experimente você mesmo
-- 1) type Player = {...}
-- 2) local player: Player = {...}
-- 3) exiba o indicador de ativo e, em seguida, a linha de resumo
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