Добавление и изменение пар
Часть раздела Основы путешествия по Lua на Coddy. Урок 68 из 90.
Чтобы добавить новую пару «ключ-значение» или изменить существующую, просто используйте оператор присваивания с точечной нотацией или нотацией с квадратными скобками:
local player = {
["name"] = "Alex",
["level"] = 5
}
-- Добавить новую пару ключ-значение
player.gold = 100
-- Изменить существующее значение
player.level = 6Преимущество этого подхода в том, что Lua не различает добавление и изменение. Если ключ "gold" отсутствует в таблице, он создаётся со значением 100. Если ключ "level" уже существует, его значение обновляется до 6.
Для этих операций можно использовать точечную нотацию или нотацию со скобками:
-- Оба варианта работают одинаково
player.class = "Warrior"
player["weapon"] = "Sword"Задание
ЛегкоСоздай систему развития персонажа, демонстрирующую добавление новых атрибутов и изменение существующих. Для начала создай таблицу с именем hero со следующими начальными парами ключ-значение: ключу ["name"] должно быть присвоено строковое значение "Warrior", ключу ["level"] — число 5, а ключу ["health"] — число 120.
После создания начальной таблицы персонажа выполни следующие изменения. Сначала добавь новую пару ключ-значение ["class"] со значением "Paladin", используя точечную нотацию. Затем измени существующее значение level на 7, используя нотацию с квадратными скобками. Наконец, добавь ещё одну новую пару ключ-значение ["mana"] со значением 80, используя нотацию с квадратными скобками.
Строки ниже твоего кода выводят класс и уровень героя, чтобы ты мог проверить изменения.
Попробуйте сами
-- Создайте исходную таблицу hero
local hero = {
-- TODO: Добавьте сюда исходные пары ключ-значение
}
-- TODO: Добавьте новые атрибуты и измените существующие, используя точечную нотацию и квадратные скобки
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы 2: Сравнение и логика
Операторы равенстваОператоры сравненияОператор 'and'Оператор 'or'Оператор 'not'Сокращенные вычисленияЗначения Truthy и FalsyИтоги: Простая логика7Основы условной логики
Оператор if-thenОператор if-then-elseОператор elseifИтоги — Сундук с сокровищами10Таблицы, часть 1: Списки
Что такое таблица?Создание таблицыДоступ к элементам по индексуИзменение элементов по индексуОператор длины '#'table.insert()table.remove()Итоги: управление участниками группы13Проект: Простой магазин зелий
Настройка проектаДобавление зелья2Переменные и типы данных
Что такое переменная?ЧислаСтрокиБулевы значенияЗначение 'nil'Функция type()Правила именованияИтоги — Профиль персонажа5Базовый вывод
Вывод литераловВывод переменныхВывод нескольких значенийОбъединение строк и переменныхФункция tostring()ВводПриведение типовПовторение — Отчет о состоянииПовторение — До 1208Основы работы со строками
string.len()string.upper и string.lowerstring.sub()string.rep()string.find()Повторение — Форматирование имени пользователя11Таблицы 2: Словарный стиль
Пары ключ-значениеСоздание таблиц-словарейДоступ: квадратные скобкиДоступ через точечную нотациюДобавление и изменение парУдаление пар с помощью nilИтоги: свойства элементов3Операторы 1: Арифметика и конкатенация
Арифметические операторыОператор остатка от деленияОператор возведения в степеньКонкатенация строкПриоритет операторовПовторение: Простые вычисления6Проект: Вывод характеристик персонажа
Приветственное сообщениеОбъявление характеристик персонажа9Основы функций
Объявление функцииВызов функцииФункции с параметрамиФункции с несколькими параметрамиОператор 'return'Повторение — Калькулятор площадиПотренируйтесь самостоятельно: Онлайн-компилятор Lua