Eliminar Pares con nil
Parte de la sección Fundamentals del Journey de Lua de Coddy — lección 69 de 90.
Cuando asignas nil a una clave, Lua elimina efectivamente ese par clave-valor de la tabla:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- Eliminar el ajuste de dificultad
settings.difficulty = nil
-- Ahora la clave difficulty ya no existe en la tablaPuedes usar tanto la notación de puntos como la notación de corchetes para eliminar un par clave-valor. Ambas settings.difficulty = nil y settings["difficulty"] = nil funcionan exactamente de la misma manera.
Después de asignar nil a una clave, esa clave desaparece por completo de la tabla. Si intentas acceder a ella más tarde, obtendrás nil como resultado, tal como si la clave nunca hubiera existido en primer lugar.
Desafío
FácilCrea un sistema de configuración de juego que demuestre cómo eliminar ajustes no deseados de una tabla de estilo diccionario. Comienza creando una tabla llamada gameConfig con los siguientes pares clave-valor: a ["graphics"] se le debe asignar el string "high", a ["sound"] se le debe asignar el número 75, a ["difficulty"] se le debe asignar el string "normal", y a ["debug"] se le debe asignar el booleano true.
Después de crear la tabla de configuración inicial, elimina el ajuste debug asignándole nil utilizando la notación de punto. Luego, imprime el ajuste de sonido restante para verificar que la tabla aún contiene los otros valores.
Hoja de referencia
Para eliminar un par clave-valor de una tabla, asigna nil a la clave:
local settings = {
["volume"] = 80,
["difficulty"] = "normal",
["music"] = true
}
-- Eliminar el ajuste de dificultad
settings.difficulty = nilPuedes usar tanto la notación de punto como la de corchetes:
settings.difficulty = nil
settings["difficulty"] = nilDespués de asignar nil, la clave desaparece por completo de la tabla. Acceder a ella devuelve nil.
Pruébalo tú mismo
-- TODO: Escribe tu código aquí
-- Crea la tabla gameConfig con los pares clave-valor requeridos
-- Elimina la configuración debug usando la notación de punto
-- Imprime la configuración soundEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentals
4Operadores 2 Relacionales y Lógicos
Operadores de IgualdadOperadores RelacionalesEl Operador 'and'El Operador 'or'El Operador 'not'Evaluación de CortocircuitoValores Truthy y FalsyResumen - Lógica Simple7Lógica condicional básica
La sentencia if-thenLa sentencia if-then-elseLa sentencia elseifResumen - Cofre del tesoro10Tablas Parte 1: Estilo de lista
¿Qué es una tabla?Crear una tablaAcceder a elementos por índiceModificar elementos por índiceEl operador de longitud '#'table.insert()table.remove()Resumen - Gestionar miembros del grupo13Proyecto: Tienda de pociones sencilla
Configuración del proyectoAñadir una poción2Variables y tipos de datos
¿Qué es una variable?NúmerosStringsBooleanosEl valor 'nil'La función type()Convenciones de nomenclaturaResumen - Perfil de personaje5Salida básica
Imprimir literalesImprimir variablesImprimir múltiples valoresCombinar cadenas y variablesLa función tostring()EntradaConversión de tipos (Cast)Resumen - Informe de estadoResumen - Hasta 1208Fundamentos de manipulación de strings
string.len()string.upper & string.lowerstring.sub()string.rep()string.find()Repaso - Formatear nombre de usuario11Tablas 2: Estilo Diccionario
Pares Clave-ValorCreación de Tablas Estilo DiccionarioAcceso - Notación de CorchetesAcceso con Notación de PuntoAñadir y Modificar ParesEliminar Pares con nilResumen - Propiedades de Elementos3Operadores 1: Aritmética y Concatenación
Operadores aritméticosOperador de móduloOperador de exponenciaciónConcatenación de stringsPrecedencia de operadoresResumen: Cálculos sencillos6Proyecto: Mostrar estadísticas del personaje
Mensaje de bienvenidaDeclarar estadísticas del personaje9Fundamentos de las funciones
Declarar una funciónLlamar a una funciónFunciones con parámetrosFunciones con múltiples parámetrosLa sentencia 'return'Repaso - Calculadora de área