Хотите научиться программированию? Попробуйте Луа!
Недавно мне захотелось научиться играть пьесу для фортепиано, в частности, Clair de Lune Клода Дебюсси. В детстве я брал несколько уроков игры на фортепиано для начинающих, но за много лет не сыграл ни одной фортепианной мелодии. Как вы можете себе представить, когда я посмотрел на листы каскадных заметок, я быстро был ошеломлен и обескуражен. Обучение программированию очень похоже на это. Вы хотите научиться делать вещи, но, скорее всего, вы просмотрели несколько статей с практическими рекомендациями и почесали затылок от сложного жаргона на экране. Как и в обучении игре на фортепиано, нужно начинать с малого. Вам нужно научиться осваивать Mary Had A Little Lamb, прежде чем пытаться выучить Clair de Lune.
В этом кратком введении в программирование мы будем использовать Lua. Lua — это легкий, но мощный язык, который используется для создания программного обеспечения, веб-приложений и даже видеоигр.
Давайте продолжим и начнем, открыв https://repl.it/languages/Lua в новой вкладке, чтобы мы могли запустить наш код. Открыв его, введите print('hello world')
в первую строку и нажмите зеленую кнопку Выполнить. Мы должны увидеть что-то вроде этого.
Вы только что написали свою первую строку кода. Легче, чем вы думали, верно? Давайте продолжим.
Переменные
Lua — это объектно-ориентированный язык программирования, и, как и многие другие, он использует ряд переменных и функций для запуска программы. Переменным можно присвоить несколько различных типов данных. В этом введении мы рассмотрим только строки и числа.
В Lua, чтобы создать переменную, мы просто вводим имя нашей переменной и присваиваем ей значение. Давайте создадим переменную с именем name
и сделаем ее равной вашему имени. Убедитесь, что ваше имя заключено в кавычки, это делает переменную строкой. После этого напечатайте свое имя, добавив строку print(name)
.
Теперь нажмите «Выполнить», и мы должны увидеть наше имя в консоли.
Функции
Теперь давайте создадим функцию, которая печатает наше имя, когда мы ее вызываем. В отличие от наших переменных, мы должны указать, что мы создаем функцию, набрав function
, прежде чем мы назовем ее. В Lua мы закрываем наши функции с помощью end
. Когда мы называем нашу функцию, мы включаем набор скобок для аргументов нашей функции. Мы пока не будем включать никаких аргументов, поэтому просто назовем нашу функцию hello()
. Внутри нашей функции мы напечатаем нашу переменную имени с print('hello',name)
. Мы используем запятую для передачи нескольких значений. Убедитесь, что ваша запятая находится вне кавычек. Далее мы закроем нашу функцию с помощью end
. Если вы нажмете «Выполнить» сейчас, ничего не произойдет. Это потому, что функция должна быть вызвана. Под нашей функцией мы просто добавим строку с именем нашей функции для ее вызова. hello()
.
Теперь, когда вы нажимаете «Выполнить», вы должны увидеть «привет», за которым следует наша переменная имени.
Вы только что создали свою первую функцию! Все еще кажется довольно простым, не так ли? Давайте немного усложним нашу функцию, передав аргумент. Это можно назвать как угодно, и оно будет принимать значение того, что вы передаете своей функции при ее вызове. Давайте просто назовем наш аргумент n
вместо «имя» и изменим имя нашей функции, чтобы оно читалось как function hello(n)
. Теперь внутри функции давайте изменим name
на n
, чтобы он читался как print('hello',n)
. Теперь наша функция должна выглядеть так:
function hello(n) print('hello', n) end
Давайте передадим нашу переменную name
при вызове функции. hello(name)
.
Теперь, когда мы запустим функцию, мы увидим нашу переменную имени в консоли, как и раньше. Мы можем передать в нашу функцию что угодно, чтобы оно стало аргументом n
. Вместо нашей переменной давайте напрямую передадим новую строку и изменим имя. Попробуйте изменить hello(name)
на hello('sansa')
. Теперь, когда мы запустим функцию, мы увидим новое имя в нашей консоли.
Ну вот! Ваша первая правильная функция, которая принимает аргументы! Уже начинаете чувствовать себя немного сложно? Не волнуйтесь, мы почти закончили! Давайте закончим, создав немного более сложную функцию, которая демонстрирует все концепции, которые мы уже изучили.
Яблоки и апельсины
Давайте создадим новую функцию для решения простой задачи на сложение. Сначала давайте создадим новую функцию с именем add()
, которая будет принимать два аргумента apples
и oranges
— function add(apples, oranges)
, мы сложим их вместе и сохраним их значение в переменной. Давайте создадим внутри функции новую переменную с именем fruit
и присвоим ей значение суммы яблок и апельсинов.
function add(apples, oranges) fruit = apples + oranges end
Теперь внутри нашей функции давайте распечатаем «всего фруктов:», а затем нашу переменную.
function add(apples, oranges) fruit = apples + oranges print('total fruit:', fruit) end
Когда мы вызываем нашу функцию, давайте укажем, что у нас есть 1 яблоко и 3 апельсина. Набрав add(1,3)
. Наш окончательный код должен выглядеть примерно так.
Теперь давайте запустим код, чтобы узнать, сколько у нас фруктов. Мы должны увидеть правильный ответ в консоли.
Хорошо! Напомним, что мы узнали, что можем создавать переменные, давая им имена и присваивая им значения, и мы узнали, что мы можем создавать функции, которые могут принимать значения и создавать новые, а также манипулировать ими. Мы сделали это! Прекрасная работа!
Спасибо за чтение! Чтобы узнать больше о Lua, посетите официальный сайт.
P.S. Я намеренно не включил циклы, но если вы хотите попробовать, вот еще несколько слов…
Дополнительный кредит: написание цикла
Итак, возможно, после того, как вы прочитали это введение в Lua и создали свою функцию, вы сказали: «Я полностью понимаю, как работают переменные и функции! Я хочу узнать больше!'. Если это вы, давайте создадим еще одну функцию с циклом!
Для циклов
Существует несколько видов петель. Здесь мы рассмотрим только цикл for. В цикле for мы указываем условие, и цикл выполняется до тех пор, пока условие истинно. Это условие записывается так: init value, min/max value, increment value
.
Давайте создадим функцию для счета до двадцати. Сначала мы назовем нашу функцию function count()
. Теперь давайте передадим аргумент с именем n
для нашего номера, чтобы он читался как function count(n)
. Далее мы можем создать наш цикл.
Подобно function
, мы вызываем циклы for, вводя for
и закрывая их с помощью end
. Начальное значение — это наша управляющая переменная, которую мы назовем i
. Мы хотим начать наш счет с 0, поэтому давайте установим его значение на 0, for i = 0,
затем установим наше максимальное значение на 20, for i = 0, 20
. Теперь давайте установим приращение к аргументу нашей функции n
, for i = 0, 20, n
. После того, как наш аргумент записан, мы добавляем do
для запуска нашего цикла, for i = 0, 20, n do
. Внутри нашей функции давайте напечатаем нашу управляющую переменную print(i)
. Ваша окончательная функция с циклом должна выглядеть так:
function count(n) for i = 0, 20, n do print(i) end end
Теперь давайте вызовем нашу функцию для подсчета на 2. count(2)
. Наш код должен выглядеть примерно так.
Теперь, когда мы запустим код, мы увидим наши числа в консоли, считая по 2!
Фу! Это было много, чтобы принять! Если это немного сбивает с толку, я бы порекомендовал обратиться к tutorialspoint за некоторыми более описательными примерами циклов, а также с некоторыми другими основами Lua. Надеюсь, это пробудило ваш интерес к программированию и языку программирования Lua!