Anotações de Formato Inline
Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 37 de 73.
Em Lua, você usa tabelas como registros há bastante tempo: local user = {name = "Ana", age = 20}. Nada impede que você escreva um campo incorretamente, esqueça um campo ou armazene uma string onde deveria haver um número. Você só descobre isso quando o código é executado.
Luau permite descrever a estrutura de uma tabela desse tipo diretamente na declaração, listando cada campo e seu tipo entre chaves:
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Compare isso com os tipos de tabela que você já conhece: {number} descreve um array, e {[string]: number} descreve um mapa com chaves de string arbitrárias. Uma estrutura é mais precisa. Ela nomeia cada campo individualmente e atribui a cada campo seu próprio tipo.
Depois que a estrutura é declarada, o verificador de tipos confere a tabela com base nela enquanto você edita. Um campo ausente ou um tipo de valor incorreto é sinalizado antes mesmo de o código ser executado:
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ erro de tipo: string não é um number
}Como sempre, a anotação não adiciona nenhum comportamento em tempo de execução: a tabela é uma tabela Lua comum. Estruturas inline são perfeitas para estruturas pontuais que você não pretende reutilizar; na próxima lição, você dará um nome às estruturas.
Desafio
FácilCrie uma variável chamada student com uma anotação de formato inline declarando:
namedo tipostringstudentIddo tiponumberisEnrolleddo tipoboolean
Inicialize-a com name "Sarah Johnson", studentId 12345 e isEnrolled true.
Crie uma segunda variável chamada course com uma anotação de formato inline declarando:
titledo tipostringcreditsdo tiponumberinstructordo tipostring
Inicialize-a com title "Introduction to Luau", credits 3 e instructor "Dr. Smith".
Imprima, cada um em sua própria linha:
- o nome do estudante
- o ID do estudante
- o título do curso
- o número de créditos
Experimente você mesmo
-- Escreva o código aqui
-- 1) declare student com uma anotação de shape inline
-- 2) declare course com uma anotação de shape inline
-- 3) imprima os quatro campos solicitados
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 Maps6Tipando Formatos de Tabelas
Anotações de Formato InlineAliases de Tipo para FormatosPropriedades OpcionaisFormatos vs. Tabelas FlexíveisEstendendo FormatosAdicionando Métodos a FormatosSelf e Métodos com Dois PontosRecapitulação: Definindo Formatos de TabelasPratique por conta própria: Compilador de Lua online