Синтаксис языка lua

Начиная с этой главы мы будем касаться уже непосредственно самого программирования, поэтому постарайтесь не пролистывать текст, а внимательно вчитываться. Иногда будем забегать вперёд, без этого никак, так что если будет что-то совсем непонятно, то в дальнейшем это будет подробно изложена.

Перед тем как начать изучать новый язык программирования, необходимо узнать правила, которые нужно соблюдать при написании кода. Синтаксис многих языков программирования очень схож и язык lua не является исключением, Так что если вы ранее программировали хотя бы на каком-то языке, например thinkScript изложенный на моём сайте, то вам будет немного легче. Но даже если это ваш первый язык программирования, то у вас скорее всего не возникнет никаких проблем, так как сверх сложно в этом ничего нет.

Синтаксис — это некие правила, по которым пишется программа. Я для себя разделяю правила на строгие и нестрогие, вы же можете не делать этого разделение, а я просто поясню какие правила я считаю строгими, а какие нет.

Под строгими правилами я понимаю такие правила, которые нарушать нельзя, иначе компьютер меня не поймет и программа работать не будет. Примером может выступать объявление переменной. Для меня будет удобно объявлять переменные следующей строкой

var name = 10; -- Это не правильно в lua!!!

Для меня будет удобно писать таким образом, так как я много пишу программ на языке C#, но это будет совершенно неправильно при программирование на lua. Я должен соблюдать синтаксис, иначе ничего хорошего не получится.

К не строгим правилам я отношу по большей части правила форматирования. Хоть такие правила и не являются обязательными, но их желательно соблюдать. Так как если ваш код будет читать другой программист, то ему будет намного легче разобраться, и вам тоже будет легче читать чужие коды. Приведу пример на той же самой строке с объявлением переменной. Как вы можете видеть в конце установлен символ «;», в языке lua этот символ ставить не обязательно, но его установка не приводит к ошибке, поэтому данное правило я отношу к не строгим правилам.

В части нестрогих правил я оставляю за вами решение, хотите придерживайтесь этих правил, а хотите нет. Сами правила я описывать не буду, но вы их можете видеть в моих примерах, которые я буду приводить на этом сайте.

Комментарии в языке lua

Начнём мы пожалуй с комментариев. Комментарии это части кода которые никаким образом не воспринимаются компьютером, они предназначены лишь только для человека, помогают нам ориентироваться в программе при написании. Комментарии бывает однострочные и многострочные.
Однострочный комментарий — это строка которая начинается с определённых символов и заканчивается знаком переноса на новую строку. Такая строка будет полностью проигнорирована компьютером при выполнение написанного кода.
Однострочный комментарий начинается с двух символов тире в начале строки.

-- Это однострочный комментарий, весь этот текст игнорируется компьютером.

Многострочные комментарии состоят из нескольких строк. Начинается многострочный комментарий символами —[[ и заканчивается символами ]]

--[[ Первая строка многострочного комментария
Вторая срока мгогострочного комментария
Третья строка многострочного комментария ]]

Все приведенные в примере строки будут проигнорирование при выполнении кода программы. Хочу обратить особое внимание на начало строки, символы —[[ должны быть неразрывными, не допускается устанавливать пробелы. Например код указанный ниже уже приводит к ошибке

-- [[ Первая строка многострочного комментария
Вторая срока мгогострочного комментария
Третья строка многострочного комментария ]]

Как видите я установил пробел между символами — и [[ это уже НЕ многострочный комментарий. Будьте внимательны при написании.

Также бывают случаи когда мы хотим вложить в многострочный комментарий ещё дополнительно комментарий. Компьютеру абсолютно всё равно, он игнорирует все строки комментариев, но при неправильном вложении комментариев происходит сбой, что приводит к ошибке при выполнении программы. Для того чтобы в многострочных комментариях использовать дополнительно многострочные комментарии необходимо писать таким образом

--[=[ Многострочный комментарий
     [[
        Еще один многострочный комментарий
     ]]
]=]

Конечно случаи когда необходимо в один комментарии вложить другой, очень редкие. Лучше будет сказать так. Если вы хотите внутри комментария использовать символы [[ и ]] , тогда объявляйте комментарий именно таким образом. Приведу еще один пример

--[==[ Многострочный комментарий
       [=[
          Еще один многострочный комментарий
          [[
             Третий многострочный комментарий
          ]]
       ]=]
]==]

Думаю принцип вы поняли.
На этом с комментариями мы закончили.

Регистр букв в языке lua

Не менее важным является регистр, который мы используем при написании программ. Дело в том что язык lua является регистрозависимый, это означает что одно и тоже слово написанное с использованием разного регистра, означает абсолютно разные значения. Приведу пример.

local name = 10;
local Name = 12;
local namE = 15;
local NAME = name + Name + namE;
local NAMe = NAme + naME; -- эта строка содержит ошибку.
message(tostring(NAME));

В этом примере я объявил 3 переменных и присвоил им значения. Называются эти переменные абсолютно одинаково, но это три отдельные независимые переменные, они никак не связаны между собой. В строках 4 и 5 я также объявляю переменные, но в строке 4, значение переменной является сумма всех трёх ранее объявленных переменных. А вот стройка 5 написана с ошибкой, в ней я обратился к переменным которых не существует. Если вы попытаетесь выполнить такой код, то получите ошибку

attempt to perform arithmetic on global ‘NAme’ (a nil value)

А если уберете строку с ошибкой, то получите сообщение в котором будет написано число 37, то есть сумма всех трех переменных.

Регистр необходимо соблюдать всегда, а не только при объявлении переменных. Например если вы напишете слово local с заглавной буквы (Local) или все буквы сделать заглавными (LOCAL), то это приведет к ошибке.

Конечно в данном коде многое для вас сейчас может оказаться непонятно, что такое local, message, tostring … но не переживайте, всему этому будут посвящены отдельные главы на сайте.

Постоянная ссылка на это сообщение: https://k-pavel.ru/sintaksis-jazyka-lua/

avatar

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

  Subscribe  
Подписаться на