Declarando e Acessando Maps
Parte da seção Introdução ao Luau do Journey de Lua da Coddy. Lição 16 de 80.
Declarar um mapa tipado se parece com os construtores de tabelas que você sempre escreveu: a anotação apenas define os tipos da chave e do valor:
local stock: {[string]: number} = {apples = 12, bananas = 5}Ler e escrever usam a indexação que você já conhece. Para chaves que são identificadores válidos, stock.apples e stock["apples"] acessam a mesma entrada; a notação com colchetes também funciona com chaves que contêm espaços ou estão armazenadas em variáveis:
stock["cherries"] = 20 -- adiciona uma nova entrada
stock.bananas = 8 -- atualiza uma entrada existente
print(stock["apples"]) -- 12
print(stock["plums"]) -- nil: nunca definidoO verificador de tipos monitora cada atribuição: stock["apples"] = "many" é sinalizado porque "many" não é um número, e usar um número como chave também é sinalizado porque as chaves precisam ser strings.
Para excluir uma entrada, atribua nil à sua chave: stock["bananas"] = nil a remove completamente, e leituras posteriores retornam nil. Não existe uma função de exclusão separada; essa é a convenção padrão em Lua, e a atribuição continua sendo validada pelo sistema de tipos em um mapa.
Desafio
FácilMantenha um mapa tipado de materiais escolares.
- Declare
local stock: {[string]: number} = {pens = 40, rulers = 15}. - Adicione
stock["erasers"] = 25e altererulerspara10. - Imprima o estoque de
pens,rulers,eraserseglue, um por linha.
Pressione Executar código: a saída mostra 40, 10, 25 e nil.
Experimente você mesmo
-- 1) declare stock: {[string]: number} com pens = 40, rulers = 15
-- 2) adicione erasers = 25, altere rulers para 10
-- 3) imprima pens, rulers, erasers e depois glue
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