Menu
Coddy logo textTech

Adicionando e Modificando Pares

Parte da seção Fundamentals do Journey de Lua da Coddy — lição 68 de 90.

Para adicionar um novo par chave-valor ou modificar um existente, você simplesmente usa o operador de atribuição com a notação de ponto ou a notação de colchetes:

local player = {
    ["name"] = "Alex",
    ["level"] = 5
}

-- Adicionar um novo par chave-valor
player.gold = 100

-- Modificar um valor existente
player.level = 6

A beleza desta abordagem é que Lua não distingue entre adicionar e modificar. Se a chave "gold" não existir na tabela, ela será criada com o valor 100. Se a chave "level" já existir, seu valor será atualizado para 6.

Você pode usar tanto a notação de ponto quanto a notação de colchetes para essas operações:

-- Ambos funcionam da mesma forma
player.class = "Warrior"
player["weapon"] = "Sword"
challenge icon

Desafio

Fácil

Crie um sistema de progressão de personagem que demonstre tanto a adição de novos atributos quanto a modificação dos existentes. Comece criando uma tabela chamada hero com os seguintes pares chave-valor iniciais: ["name"] deve receber a string "Warrior", ["level"] deve receber o número 5 e ["health"] deve receber o número 120.

Após criar a tabela de personagem inicial, realize as seguintes modificações: Primeiro, adicione um novo par chave-valor ["class"] com o valor "Paladin" usando a notação de ponto. Em seguida, modifique o valor de level existente para 7 usando a notação de colchetes. Por fim, adicione outro novo par chave-valor ["mana"] com o valor 80 usando a notação de colchetes.

Depois que todas as modificações estiverem concluídas, imprima a classe do herói e o nível atualizado para verificar as alterações.

Folha de consulta

Para adicionar um novo par chave-valor ou modificar um existente em uma tabela, use o operador de atribuição com a notação de ponto ou a notação de colchetes:

local player = {
    ["name"] = "Alex",
    ["level"] = 5
}

-- Add a new key-value pair
player.gold = 100

-- Modify an existing value
player.level = 6

Lua não distingue entre adicionar e modificar - se a chave não existir, ela será criada; se ela existir, seu valor será atualizado.

Tanto a notação de ponto quanto a notação de colchetes funcionam para essas operações:

-- Both work the same way
player.class = "Warrior"
player["weapon"] = "Sword"

Experimente você mesmo

-- Cria a tabela inicial do herói
local hero = {
    -- TODO: Adicione os pares chave-valor iniciais aqui
}

-- TODO: Adicione novos atributos e modifique os existentes usando a notação de ponto e colchetes

-- Exibe a classe do herói e o nível atualizado
print(hero.class)
print(hero.level)
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 Fundamentals