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 mapa tipado se parece com os construtores de tabela que você sempre escreveu: a anotação apenas fixa os tipos das chaves e dos valores:
local stock: {[string]: number} = {apples = 12, bananas = 5}A leitura e a 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 que contêm espaços ou que estão 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 acompanha 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 excluir uma entrada, atribua nil à chave: stock["bananas"] = nil a remove completamente, e as leituras posteriores retornam nil. Não existe uma função de exclusão separada; esse é o idioma padrão de Lua, e ele continua sendo verificado pelo sistema de tipos em um mapa.
Desafio
FácilCrie um mapa tipado stock: {[string]: number} inicializado com apples = 12 e bananas = 5. Em seguida:
- adicione uma nova entrada
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 chave 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 MapsPratique por conta própria: Compilador de Lua online