Menu
Coddy logo textTech

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 definido

O 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.

challenge icon

Desafio

Fácil

Crie um map tipado stock: {[string]: number} inicializado com apples = 12 e bananas = 5. Depois:

  1. adicione uma nova entry cherries com o valor 20
  2. atualize bananas para 8

Por fim, imprima, cada um em sua própria linha:

  1. o estoque de apples
  2. o estoque de bananas
  3. o estoque de cherries
  4. 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
quiz iconTeste seus conhecimentos

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