Menu
Coddy logo textTech

Доступ через точечную нотацию

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

Lua предлагает более удобную альтернативу, называемую точечной нотацией. Это более чистый и читаемый способ доступа к значениям, когда ваши ключи являются простыми строками.

Вместо того чтобы писать player["score"], вы можете просто написать player.score:

local player = {
    ["name"] = "Alex",
    ["score"] = 1500,
    ["level"] = 8
}

print(player.name)   -- выводит: Alex
print(player.score)  -- выводит: 1500

Точечная нотация — это то, что программисты называют «синтаксическим сахаром»: это более приятный способ записи того же самого. Однако она работает только тогда, когда ваш ключ является допустимым идентификатором Lua, то есть содержит только буквы, цифры и подчеркивания и не начинается с цифры.

local book = {
    ["title"] = "Lua Programming",
    ["pages"] = 300
}

local bookTitle = book.title
print(bookTitle)  -- выводит: Lua Programming
challenge icon

Задание

Легко

Создайте систему управления библиотекой, которая демонстрирует доступ к информации о книге с использованием точечной нотации. Сначала создайте таблицу с именем book со следующими парами ключ-значение: ["title"] должно быть присвоено строковое значение "The Lua Guide", ["author"] должно быть присвоено строковое значение "Roberto Ierusalimschy", ["pages"] должно быть присвоено число 328, а ["year"] должно быть присвоено число 2016. После создания таблицы используйте точечную нотацию для доступа и вывода названия книги.

Шпаргалка

Lua предоставляет точечную нотацию как более чистую альтернативу скобочной нотации для доступа к значениям таблицы, когда ключи являются простыми строками:

local player = {
    ["name"] = "Alex",
    ["score"] = 1500,
    ["level"] = 8
}

print(player.name)   -- выводит: Alex
print(player.score)  -- выводит: 1500

Точечная нотация работает только тогда, когда ваш ключ является допустимым идентификатором Lua (содержит только буквы, цифры и подчеркивания и не начинается с цифры):

local book = {
    ["title"] = "Lua Programming",
    ["pages"] = 300
}

local bookTitle = book.title
print(bookTitle)  -- выводит: Lua Programming

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

-- TODO: Создайте таблицу book с необходимыми парами ключ-значение

-- TODO: Используйте точечную нотацию для доступа и вывода названия книги
quiz iconПроверьте себя

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

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