Сегодня мы разговариваем про синтаксис языка MQL4.
И, как я уже говорил, если Вы программируете на C или C++, то Вы уже очень многое знаете про MQL4.
Это потому, что синтаксис MQL4 очень похож на синтаксис C.
Синтаксис — сторона языка программирования, которая описывает структуру программ как наборов символов (обычно говорят — безотносительно к содержанию). “Wikipedia”
Т.е. когда мы изучаем синтаксис языка, мы изучаем его грамматику и правила написания, которые состоят из:
- Форматирование
- Комментарии
- Идентификаторы
- Зарезервированные слова
Разберёмся с каждым из этих пунктов отдельно.
1 – Форматирование текста
Когда Вы пишите код, Вы можете свободно использовать любое количество пробельных символов: пробелов, табуляций, пустых строк – чтобы делать свой код читаемым и приятным для просмотра.
Например, следующие коды равнозначны в MQL4:
double MacdCurrent, MacdPrevious, SignalCurrent;
double
MacdCurrent,
MacdPrevious,
SignalCurrent;
double MacdCurrent, MacdPrevious, SignalCurrent;
Но, как Вы видите, первый вариант более читаем и проще воспринимается.
Однако, к любому правилу есть исключения:
1. Запрещено использовать символ переноса строки после знака решётки:
Например, следующая строка неверна:
#property
copyright "Copyright © 2004, MetaQuotes Software Corp."
А эта верна:
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
2. Запрещено использовать пробельные символы внутри констант, идентификаторов и ключевых слов.
Например, следующая строка верна:
extern int MA_Period=13;
Здесь “extern” и “int” – ключевые слова, “MA_Period” – идентификатор, а “13″ – константа.
Но об этом подробнее в следующем уроке.
Следующие строки неверны:
3;
extern int MA_Period=1 3;
extern int MA_Period=13;
2 – Комментарии
Чтобы упростить мир программирования (превратить его из невклидового четырёхмерного пространства в евклидово трёхмерное параметрическое) [шутка ;) - всё проще], в каждом языке программирования есть свой стиль написания комментариев к коду.
Вы пишите комментарии, которые компилятор игнорирует. Зато код становится понятней.
Предположим, Вы написали код летом, а хотите прочитать его зимой. Хоть Вы и создатель кода без комментариев понять все эти странные символы будет достаточно непросто.
MQL4 (как и C/C++) использует два типа комментариев:
Однострочные комментарии
Однострочный комментарий начинается с символов // и заканчивается переходом на новую строку.
Например:
//Это комментарий
extern int MA_Period=13;
extern int MA_Period=13; //Это ещё один комментарий
Многострочные комментарии
Многострочные комментарии начинаются символами /* и заканчиваются символами */
Например:
/*Это
многострочный
комментарий*/
Однострочные комментарии разрешается вкладывать внутрь многострочных:
/*Это
многострочный //А это ещё один комментарий
комментарий*/
Ещё пример:
extern int /*HELLO! I’m a comment*/ MA_Period=13;
А вот так нельзя:
extern int //test MA_Period=13;
Многострочные комментарии вкладывать друг в друга запрещается.
3. Идентификаторы
Идентификатор – это имя, которое Вы присвоили своей переменной, константе или функции.
Например:
extern int MA_Period=13;
Здесь MA_Period – идентификатор.
Есть несколько правил и ограничений в выборе идентификаторов:
1. Длина идентификатора не должна превышать 31 символа.
2. Идентификатор должен начинаться с буквы (большой или маленькой) или с символа _.
3. В качестве идентификаторов нельзя использовать зарезервированные слова, с которыми мы скоро познакомимся.
4. Идентификаторы чувствительны к регистру. Т.е. MA_Period и ma_Period – это разные идентификаторы.
Рассмотрим несколько примеров:
Name1 верно
_Name1 верно
1Name неверно
~Name1 неверно
N~ame1 неверно
i_love_my_country_and_my_country_loves_all_the_world неверно
Color верно
color неверно (зарезервированное слово)
4. Зарезервированные слова
Есть “слова”, которые язык использует для определённых целей.
Их запрещается использовать в качестве идентификаторов или в любых других целях.
Список зарезервированных слов:
![post-798-0-49874600-1346244651](http://blog.forex4you.org/wp-content/uploads/2013/06/post-798-0-49874600-1346244651.gif)
Например следующие строчки кода неверны:
extern int datetime =13;
int extern =20;
double continue = 0;
|