Выражения

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

В качестве операторов, которые позволяют манипулировать операндами, в выражениях используются отдельные символы или их последовательности, например, '+' для сложения или '*' для умножения. Все они образуют несколько групп, в частности, арифметические, побитовые, сравнения, логические и некоторые специализированные.

Мы уже пользовались выражениями в предыдущих разделах книги, например, для инициализации переменных. В простейшем случае, выражение — это константа (литерал), которая и является единственным операндом, и результат вычисления равен значению операнда. Однако операндами также могут быть переменные, элементы массивов, результаты вызова функции (для чего функция вызывается прямо из выражения), вложенные выражения и прочие сущности.

Все операторы подставляют (возвращают) результат своей работы в родительское выражение, непосредственно в то место, где находились операнды, что позволяет комбинировать их, составляя довольно сложные иерархические конструкции. Например, в следующем выражении результат произведения переменных b и c складывается со значением переменной a, после чего полученная величина сохраняется в переменной v:

v = a + b * c;

В этом разделе мы рассмотрим общие принципы построения и вычисления выражений, а также стандартный набор операторов, поддерживаемый в MQL5 для встроенных типов. Позднее, в части, посвященной ООП, мы узнаем, как можно перегрузить (переопределить) операторы для пользовательских типов — структур и классов, что позволит использовать в выражениях объекты и выполнять над ними нестандартные действия.

В русскоязычной литературе одинаково часто встречаются два устоявшихся варианта перевода оригинального термина "operator": операция и оператор. При этом инструкции ("statements"), которые мы изучим в одноименной главе, также часто называют по-русски операторами. Это может создавать проблемы, потому что операторы-операции, составляющие выражения, "живут" внутри операторов-инструкций, организующих выполнение разных строк программы. Кроме того, слова "операция" и "оператор" настолько похожи, что их легко перепутать. Поэтому далее в книге постараемся придерживаться следующих правил.
 
Мы будем использовать термин "оператор" в качестве синонима "операции" там, где не упоминаются "инструкции". Также мы будем использовать "оператор" как общеупотребительный аналог "инструкции" в отсутствии неоднозначности с "операциями".