Lua - базовый синтаксис
Приступим к созданию нашей первой программы на Lua!
Первая программа Lua
Программирование в интерактивном режиме
Lua предоставляет режим, называемый интерактивным режимом. В этом режиме вы можете вводить инструкции одну за другой и мгновенно получать результаты. Это можно вызвать в оболочке с помощью lua -i или просто команды lua. После того, как вы введете это, нажмите Enter, и интерактивный режим будет запущен, как показано ниже.
$ lua -i 
$ Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
quit to end; cd, dir and edit also availableВы можете распечатать что-нибудь, используя следующий оператор -
print("test")После того, как вы нажмете Enter, вы получите следующий результат -
testПрограммирование режима по умолчанию
Вызов интерпретатора с параметром имени файла Lua начинает выполнение файла и продолжается до завершения сценария. Когда сценарий завершен, интерпретатор больше не активен.
Напишем простую программу на Lua. Все файлы Lua будут иметь расширение .lua. Поэтому поместите следующий исходный код в файл test.lua.
print("test")Предполагая, что среда lua настроена правильно, давайте запустим программу, используя следующий код -
$ lua test.luaМы получим следующий результат -
testДавайте попробуем другой способ выполнить программу Lua. Ниже приведен модифицированный файл test.lua -
#!/usr/local/bin/lua
print("test")Здесь мы предположили, что у вас есть интерпретатор Lua, доступный в вашем каталоге / usr / local / bin. Первая строка игнорируется интерпретатором, если она начинается со знака #. Теперь попробуйте запустить эту программу следующим образом -
$ chmod a+rx test.lua
$./test.luaМы получим следующий результат.
testДавайте теперь посмотрим на основную структуру программы Lua, чтобы вам было легко понять основные строительные блоки языка программирования Lua.
Токены в Lua
Программа Lua состоит из различных токенов, и токен представляет собой ключевое слово, идентификатор, константу, строковый литерал или символ. Например, следующий оператор Lua состоит из трех токенов -
io.write("Hello world, from ",_VERSION,"!\n")Отдельные токены -
io.write
(
   "Hello world, from ",_VERSION,"!\n"
)Комментарии
Комментарии похожи на вспомогательный текст в вашей программе Lua, и интерпретатор игнорирует их. Они начинаются с - [[и заканчиваются символами -]], как показано ниже -
--[[ my first program in Lua --]]Идентификаторы
Идентификатор Lua - это имя, используемое для идентификации переменной, функции или любого другого определяемого пользователем элемента. Идентификатор начинается с буквы от «A до Z» или от «от a до z» или символа подчеркивания «_», за которым следуют ноль или более букв, символов подчеркивания и цифр (от 0 до 9).
Lua не допускает символов пунктуации, таких как @, $ и%, в идентификаторах. Lua - этоcase sensitiveязык программирования. Таким образом, рабочая сила и рабочая сила - это два разных идентификатора в Lua. Вот несколько примеров приемлемых идентификаторов -
mohd         zara      abc     move_name    a_123
myname50     _temp     j       a23b9        retValКлючевые слова
В следующем списке показаны несколько зарезервированных слов в Lua. Эти зарезервированные слова нельзя использовать в качестве констант, переменных или любых других имен идентификаторов.
| и | сломать | делать | еще | 
| elseif | конец | ложный | за | 
| функция | если | в | местный | 
| ноль | не | или же | повторение | 
| возвращение | тогда | правда | до того как | 
| в то время как | 
Пробелы в Lua
Строка, содержащая только пробелы, возможно с комментарием, называется пустой строкой, и интерпретатор Lua ее полностью игнорирует.
Пробел - это термин, используемый в Lua для описания пробелов, табуляции, символов новой строки и комментариев. Пробел отделяет одну часть оператора от другой и позволяет интерпретатору определить, где заканчивается один элемент в операторе, например int, и начинается следующий элемент. Следовательно, в следующем заявлении -
local ageМежду local и age должен быть хотя бы один пробел (обычно пробел), чтобы интерпретатор мог их различить. С другой стороны, в следующем заявлении -
fruit = apples + oranges   --get the total fruitМежду фруктами и = или между = и яблоками нет необходимости в пробельных символах, хотя вы можете добавить некоторые из них, если хотите для удобства чтения.