Menu
Coddy logo textTech

Удаление пар с помощью nil

Часть раздела Fundamentals путешествия по Lua на Coddy — урок 69 из 90.

Когда вы присваиваете nil ключу, Lua фактически удаляет эту пару «ключ-значение» из таблицы:

local settings = {
    ["volume"] = 80,
    ["difficulty"] = "normal",
    ["music"] = true
}

-- Удаление настройки сложности
settings.difficulty = nil

-- Теперь ключ difficulty больше не существует в таблице

Вы можете использовать либо точечную нотацию, либо нотацию в квадратных скобках, чтобы удалить пару «ключ-значение». Оба варианта settings.difficulty = nil и settings["difficulty"] = nil работают совершенно одинаково.

После присвоения nil ключу, этот ключ полностью исчезает из таблицы. Если вы попытаетесь обратиться к нему позже, вы получите nil в качестве результата, точно так же, как если бы ключа никогда не существовало.

challenge icon

Задание

Легко

Создайте систему конфигурации игры, которая демонстрирует удаление нежелательных настроек из таблицы в стиле словаря. Начните с создания таблицы с именем gameConfig со следующими парами ключ-значение: ["graphics"] должно быть присвоено строковое значение "high", ["sound"] должно быть присвоено число 75, ["difficulty"] должно быть присвоено строковое значение "normal", а ["debug"] должно быть присвоено логическое значение true.

После создания начальной таблицы конфигурации удалите настройку debug, присвоив ей значение nil с помощью точечной нотации. Затем выведите оставшуюся настройку звука, чтобы убедиться, что таблица все еще содержит остальные значения.

Шпаргалка

Чтобы удалить пару «ключ-значение» из таблицы, присвойте ключу значение nil:

local settings = {
    ["volume"] = 80,
    ["difficulty"] = "normal",
    ["music"] = true
}

-- Удаление настройки сложности
settings.difficulty = nil

Вы можете использовать либо точечную нотацию, либо нотацию в квадратных скобках:

settings.difficulty = nil
settings["difficulty"] = nil

После присвоения nil ключ полностью исчезает из таблицы. Обращение к нему возвращает nil.

Попробуйте сами

-- TODO: Напишите свой код здесь
-- Создайте таблицу gameConfig с необходимыми парами ключ-значение
-- Удалите настройку debug, используя точечную нотацию
-- Выведите настройку sound
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals