Tabelas de Formato Misto
Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 18 de 73.
Arrays contêm muitos valores de um único tipo; mapas contêm 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 string, uma pontuação numérica e um sinalizador booleano. O Luau tipa esses elementos 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 de 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 número e sinaliza erros antecipadamente: um erro de digitação como player.scroe (nenhum campo com esse nome) ou a atribuição de player.score = "high" (tipo incorreto). Esta é a primeira introdução: um capítulo posterior aprofunda muito mais as formas, os campos opcionais e os métodos.
Desafio
FácilDefina um alias de tipo Player para uma estrutura com três campos: name: string, score: number e active: boolean.
Crie local player: Player com o nome "Rio", a pontuação 1500 e active definido como true.
Imprima, cada um em sua própria linha:
- o nome do jogador
- a pontuação do jogador
- o sinalizador de atividade do jogador
- a linha exata
Rio has 1500 pointsconstruída com interpolação de strings a partir dos campos
Experimente você mesmo
-- Escreva o código aqui
-- 1) type Player = {name: string, score: number, active: boolean}
-- 2) crie player: Player = {name = "Rio", score = 1500, active = true}
-- 3) imprima name, score, active, depois a linha de resumo interpolada
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