Первая программа
Добро пожаловать на курс Lua! Lua — небольшой и быстрый язык программирования. Его создали в 1993 году в PUC-Rio, университете в Рио-де-Жанейро (Бразилия), Роберту Иерузалимски, Луиш Энрике ди Фигейреду и Валдемар Селес. Название — португальское слово, которое означает «луна».
Lua создавали, чтобы он жил внутри других программ. Большие программы, например игры, обычно пишут на других языках, а их создатели встраивают в них Lua, чтобы несколькими строками на Lua описывать, как что-то себя ведёт: что делает персонаж, что происходит, когда открываешь дверь, что показывает кнопка. Lua маленький и легко встраивается в программу, поэтому его можно найти во многих играх. Игры в Roblox программируют на Luau — языке, который вырос из Lua. Дополнения для World of Warcraft, которые игроки пишут сами, написаны на Lua, как и игры на движках LÖVE и Defold. Вне игр Lua встречается, например, в текстовом редакторе Neovim и в базе данных Redis.
Этот курс учит стандартному Lua версии 5.4. Luau из Roblox вырос из более старой версии Lua и получил кое-что своё. Большая часть того, что вы здесь выучите, работает и в нём, а последний урок курса покажет различия.
Что впереди? Вы научитесь хранить значения в переменных, принимать решения с помощью условий и повторять работу с помощью циклов. Вы будете держать списки вещей в таблицах, писать собственные функции, использовать таблицы как словари и работать с текстом. Затем — две особенности Lua: объекты на метатаблицах и корутины, то есть функции, которые можно приостановить и продолжить позже. В итоговом проекте вы соберёте всё вместе в симуляцию целого сезона на ферме.
На какой ферме? На ферме «Подсолнух», она принадлежит Эмме. Эмма выращивает морковь, картофель, тыквы, клубнику и пшеницу, держит кур ради яиц, корову Беллу ради молока и пса Рекса для компании. Она покупает семена, продаёт урожай на рынке за монеты и следит за погодой. Иногда к ней заходят сосед дедушка Джо и торговец Гуго. Все примеры и упражнения этого курса — с её фермы.
Но сначала — самая первая программа. Программа — это последовательность команд, которые компьютер выполняет одну за другой, сверху вниз. В этой команда всего одна, и она выводит приветствие:
print("Привет, Lua!")Программа выведет:
Привет, Lua!Что означают части этой команды:
print— это функция: команда с именем, которая что-то делает.printвыводит то, что вы ей передали, в вывод — чёрную панель, где видно, что напечатала ваша программа (на телефоне — вкладка «Вывод»). Каждыйprintвыводит одну строку.- Скобки
( )после имени содержат то, с чем должна работать функция. Запись имени функции со скобками называется вызовом функции. "Привет, Lua!"— это текст. Программисты называют текст строкой, как в выражении «строка символов». Двойные кавычки показывают Lua, где текст начинается и где заканчивается. Сами они не выводятся.
Lua различает заглавные и строчные буквы, поэтому Print("Привет, Lua!") не сработает: Lua не знает никакого Print, и программа остановится с красным сообщением об ошибке под выводом. Не переживайте, если так случится: проверьте строку, исправьте и запустите программу ещё раз. Позже в этом уроке вы научитесь читать сообщения об ошибках.
И ещё одно: программы на этом сайте умеют только выводить. Они не могут читать то, что вы набираете на клавиатуре, поэтому всё, с чем они работают, записано прямо в программе.
Задание
- 1
В редакторе — программа из примера. Нажмите Запустить под редактором и посмотрите на вывод (на телефоне — вкладка «Вывод»). Первый запуск может занять немного времени, пока загружается Lua.
Затем измените текст в кавычках, чтобы программа приветствовала вас на ферме Эммы:
Добро пожаловать на ферму Подсолнух! - 2
У Эммы появился новый помощник — вы. Под первым
printдобавьте второй, который на следующей строке выведетПомощник на ферме:и ваше имя, например:Добро пожаловать на ферму Подсолнух! Помощник на ферме: АннаВесь текст, включая ваше имя, поместите в кавычки.