Menu
Coddy logo textTech

Объявление и доступ к Map-словарям

Часть раздела Введение в Luau путешествия по Lua на Coddy. Урок 16 из 73.

Объявление типизированного map выглядит так же, как конструкторы таблиц, которые вы всегда писали: аннотация просто фиксирует типы key и value:

local stock: {[string]: number} = {apples = 12, bananas = 5}

Чтение и запись используют знакомую вам индексацию. Для key, являющихся допустимыми идентификаторами, stock.apples и stock["apples"] обращаются к одной и той же entry; скобочная форма также обрабатывает key с пробелами или key, хранящиеся в переменных:

stock["cherries"] = 20   -- добавить новую запись
stock.bananas = 8        -- обновить существующую
print(stock["apples"])  -- 12
print(stock["plums"])   -- nil — никогда не задано

Проверка типов отслеживает каждую запись: stock["apples"] = "many" помечается как ошибка, потому что "many" не является числом, а использование числа в качестве key также помечается как ошибка, потому что key должны быть строками.

Чтобы удалить entry, присвойте nil её key: stock["bananas"] = nil полностью removes её, и последующие чтения возвращают nil. Отдельной функции удаления нет; это стандартный идиоматический способ Lua, и он по-прежнему проходит проверку типов для map.

challenge icon

Задание

Легко

Создай типизированную map stock: {[string]: number}, инициализированную значениями apples = 12 и bananas = 5. Затем:

  1. добавь новую entry cherries со значением 20
  2. обнови bananas до 8

Наконец, выведи каждое значение в отдельной строке:

  1. количество apples в stock
  2. количество bananas в stock
  3. количество cherries в stock
  4. количество plums в stock: key, который ты никогда не устанавливал

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

-- Напишите код здесь
-- 1) объявите stock: {[string]: number} с apples = 12, bananas = 5
-- 2) добавьте cherries = 20, обновите bananas до 8
-- 3) выведите apples, bananas, cherries, затем plums
quiz iconПроверьте себя

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

Все уроки раздела Введение в Luau

Потренируйтесь самостоятельно: Онлайн-компилятор Lua