Добавление и изменение пар
Часть раздела Fundamentals путешествия по 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, используя нотацию в квадратных скобках.
После завершения всех изменений выведите класс героя и обновленный уровень, чтобы проверить изменения.
Шпаргалка
Чтобы добавить новую пару «ключ-значение» или изменить существующую в таблице, используйте оператор присваивания с точечной нотацией или нотацией в квадратных скобках:
local player = {
["name"] = "Alex",
["level"] = 5
}
-- Добавление новой пары «ключ-значение»
player.gold = 100
-- Изменение существующего значения
player.level = 6Lua не делает различий между добавлением и изменением — если ключ не существует, он создается; если он существует, его значение обновляется.
Для этих операций подходят как точечная нотация, так и нотация в квадратных скобках:
-- Оба способа работают одинаково
player.class = "Warrior"
player["weapon"] = "Sword"Попробуйте сами
-- Создание начальной таблицы героя
local hero = {
-- TODO: Добавьте сюда начальные пары ключ-значение
}
-- TODO: Добавьте новые атрибуты и измените существующие, используя точечную и скобочную нотацию
-- Вывод класса героя и обновленного уровня
print(hero.class)
print(hero.level)В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Fundamentals
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'Повторение — Калькулятор площади