Declarando e Acessando Maps
Parte da seção Introdução ao Luau do Journey de Lua da Coddy — lição 16 de 73.
Declarar um map tipado é semelhante aos construtores de tabela que você sempre escreveu — a anotação apenas fixa os tipos de chave e valor:
local stock: {[string]: number} = {apples = 12, bananas = 5}A leitura e escrita 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 forma com colchetes também lida com chaves com espaços ou armazenadas em variáveis:
stock["cherries"] = 20 -- adiciona uma nova entrada
stock.bananas = 8 -- atualiza uma existente
print(stock["apples"]) -- 12
print(stock["plums"]) -- nil — nunca definidoO verificador de tipos monitora cada escrita: stock["apples"] = "many" é sinalizado porque "many" não é um número, e usar um número como chave é sinalizado porque as chaves devem ser strings.
Para remover uma entrada, atribua nil à sua chave — stock["bananas"] = nil a remove totalmente, e leituras posteriores retornam nil. Não existe uma função de exclusão separada; este é o idioma padrão do Lua, e ele continua sendo verificado pelo sistema de tipos em um map.
Desafio
FácilCrie um map tipado stock: {[string]: number} inicializado com apples = 12 e bananas = 5. Depois:
- adicione uma nova entry
cherriescom o valor20 - atualize
bananaspara8
Por fim, imprima, cada um em sua própria linha:
- o estoque de
apples - o estoque de
bananas - o estoque de
cherries - o estoque de
plums— uma key que você nunca definiu
Experimente você mesmo
-- Escreva o código aqui
-- 1) declare stock: {[string]: number} com apples = 12, bananas = 5
-- 2) adicione cherries = 20, atualize bananas para 8
-- 3) imprima apples, bananas, cherries, depois plums
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 Maps