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 = 6A 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"Desafio
FácilCrie 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 = 6Lua 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)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
4Operadores 2 Relacionais e Lógicos
Operadores de IgualdadeOperadores RelacionaisO Operador 'and'O Operador 'or'O Operador 'not'Avaliação de Curto-CircuitoValores Truthy e FalsyRecapitulação - Lógica Simples7Lógica Condicional Básica
A instrução if-thenA instrução if-then-elseA instrução elseifRecapitulação - Baú do Tesouro2Variáveis e Tipos de Dados
O que é uma Variável?NúmerosStringsBooleanosO Valor 'nil'A Função type()Convenções de NomenclaturaRecapitulação - Perfil de Personagem5Saída Básica
Imprimindo LiteraisImprimindo VariáveisImprimindo Múltiplos ValoresCombinando Strings e VariáveisA Função tostring()EntradaCastRecapitulação - Relatório de StatusRecapitulação - Até 1208Fundamentos de Manipulação de Strings
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Revisão - Formatar Nome de Usuário11Tabelas 2: Estilo Dicionário
Pares Chave-ValorCriando Tabelas Estilo DicionárioAcessando - Notação de ColchetesAcessando com Notação de PontoAdicionando e Modificando ParesRemovendo Pares com nilRecapitulação - Propriedades de Itens3Operadores 1: Aritmética e Concatenação
Operadores AritméticosOperador de MóduloOperador de ExponenciaçãoConcatenação de StringsPrecedência de OperadoresRecapitulação - Cálculos Simples6Projeto: Exibição de Atributos do Personagem
Mensagem de Boas-vindasDeclarar Atributos do Personagem9Fundamentos de Funções
Declarando uma FunçãoChamando uma FunçãoFunções com ParâmetrosFunções com Múltiplos ParâmetrosA Instrução 'return'Recapitulação - Calculadora de Área