Оператор

Оператор — базовая часть языка программирования, обозначающая некоторое действие, которое предстоит сделать с данными (операндами). То же: operator.

Например, есть арифметические операторы. С помощью оператора + складываются два числа, стоящие слева и справа от оператора. В некотором смысле операторы повышают читабельность кода. Например, можно было бы обойтись без того же оператора +. Мы бы тогда складывали числа с помощью вызова функций: sum(5,5) вместо 5+5. Но для человека более привычным является использование плюса.

Приоритеты операторов в Эрланге

Операторы обладают разным приоритетом. Например, умножить обладает большим приоритетом, чем сложить. Поэтому 5+5*5 всегда будет равно 30, а не 50.

Операторы бывают унарные и бинарные. Первым нужен только один операнд, вторым — два.

Операторы различаются по ассоциативности. Некоторые, например +, выполняются слева направо. Другие, например ++, выполняются справа налево. 1 + 2 + 4 выполнится следующим образом: сначала к единице прибавится двойка, а потом к получившейся тройке прибавится четвёрка.

Если мы желаем изменить порядок операций, какую-то часть выражения можно заключить в круглые скобки. У нас могут быть функции с побочным эффектом, и даже такие простые выражения вроде Foo(X) + Foo(Y) + Foo(Z) могут потребовать изменения порядка: Foo(X) + (Foo(Y) + Foo(Z)) (или просто переставить слагаемые).

У операторов ++ и -- порядок безусловно надо учитывать.

$ erl +pc unicode
1> "мама" ++ "мыла" ++ "раму".
"мамамылараму"
2> "мама" ++ "раму" ++ "мыла".
"мамарамумыла"
3> "раму" -- "мыла" -- "мама".
"раму"
4> "раму" -- "мама" -- "мыла".
"ру"

Рейтинг операторов (сначала идут обладатели высокого приоритета):


© Алексей Карманов, 2024.