Removendo Pares com nil
Parte da seção Fundamentals do Journey de Lua da Coddy — lição 69 de 90.
Quando você atribui nil a uma chave, o Lua efetivamente remove esse par chave-valor da tabela:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- Remover a configuração de dificuldade
settings.difficulty = nil
-- Agora a chave difficulty não existe mais na tabelaVocê pode usar tanto a notação de ponto quanto a notação de colchetes para remover um par chave-valor. Ambas settings.difficulty = nil e settings["difficulty"] = nil funcionam exatamente da mesma maneira.
Após atribuir nil a uma chave, essa chave desaparece completamente da tabela. Se você tentar acessá-la mais tarde, você obterá nil como resultado, exatamente como se a chave nunca tivesse existido.
Desafio
FácilCrie um sistema de configuração de jogo que demonstre a remoção de configurações indesejadas de uma tabela do tipo dicionário. Comece criando uma tabela chamada gameConfig com os seguintes pares de chave-valor: ["graphics"] deve receber a string "high", ["sound"] deve receber o número 75, ["difficulty"] deve receber a string "normal" e ["debug"] deve receber o booleano true.
Após criar a tabela de configuração inicial, remova a configuração debug atribuindo nil a ela usando a notação de ponto. Em seguida, imprima a configuração de som restante para verificar se a tabela ainda contém os outros valores.
Folha de consulta
Para remover um par chave-valor de uma tabela, atribua nil à chave:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- Remover a configuração de dificuldade
settings.difficulty = nilVocê pode usar tanto a notação de ponto quanto a notação de colchetes:
settings.difficulty = nil
settings["difficulty"] = nilApós atribuir nil, a chave desaparece completamente da tabela. Acessá-la retorna nil.
Experimente você mesmo
-- TODO: Escreva seu código aqui
-- Crie a tabela gameConfig com os pares chave-valor necessários
-- Remova a configuração debug usando a notação de ponto
-- Imprima a configuração soundEsta 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