Menu
Coddy logo textTech

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

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

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

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

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

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

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

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

challenge icon

Задание

Легко

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

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

В завершение выведите на печать (print), каждый параметр с новой строки:

  1. запас apples
  2. запас bananas
  3. запас cherries
  4. запас plumskey, который вы never не устанавливали

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

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

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

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