Menu
CoddyTech

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 definido

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

challenge icon

Desafio

Fácil

Mantenha um mapa tipado de materiais escolares.

  1. Declare local stock: {[string]: number} = {pens = 40, rulers = 15}.
  2. Adicione stock["erasers"] = 25 e altere rulers para 10.
  3. Imprima o estoque de pens, rulers, erasers e glue, 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

Pratique por conta própria: Compilador de Luau online