Операция (программирование)

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

Опера́ция — конструкция в языках программирования, аналогичная по записи математическим операциям, то есть специальный способ записи некоторых действий. Наиболее часто применяются арифметические, логические и строковые операции. В отличие от функций, операции часто являются базовыми элементами языка и обозначаются различными символами пунктуации, а не алфавитно-цифровыми; они имеют специальный инфиксный синтаксис и нестандартные правила передачи аргументов. Терминология, однако, несколько отличается от языка к языку.

Содержание

Операция и инструкция

Английское слово operator, соответствующее термину «операция», иногда ошибочно переводят как «оператор». На самом деле (по историческим причинам) русский термин «оператор» обозначает то же, что и «инструкция», которой соответствует английское statement. Путаница усугубилась тем, что в C присваивание и инкремент/декремент являются и операторами, и операциями.

Операция и функция

Фактически, операция — это та же функция, но записываемая особым образом. По этой причине логично иметь возможность определять операции для произвольных типов таким же образом, как и методы — чтобы можно было работать с ними точно так же, как и с элементарными типами. Эта возможность называется «перегрузка операций» и присутствует в большинстве языков 4—5 поколений. В таких языках транслятор, фактически, подставляет вместо выполнения операции вызов соответствующей ей функции.

Типы операций

Операции делятся по количеству принимаемых аргументов на:

  • унарные — один аргумент (отрицание, унарный минус)
  • бинарные — два аргумента (сложение, вычитание, умножение и т.д.)
  • тернарные — три аргумента ("условие ? выражение1 : выражение2")

Синтаксис операций

Поскольку операции аналогичны по записи алгебраическим выражениям, для них, как и для последних, существует 3 варианта синтаксиса:

  • префиксная (+ab) нотация;
  • инфиксная (a+b) нотация;
  • постфиксная (польская) (ab+) нотация;

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

Список типовых операций

Операции обычно переходят из языков в родственные — например, операции языка С присутствуют в языках C++, Java, JavaScript и многих других.

Оператор Выполняемая операция Языки программирования
a = b или a := b присваивание практически все
Арифметические
a + b сложение аргументов практически все
a - b вычитание практически все
-a изменение знака практически все
a / b, a div b деление практически все
a % b, a mod b деление по модулю С, Java, PHP, Pascal
a++
a--
увеличение на 1 с присваиванием (инкремент)
уменьшение на 1 с присваиванием (декремент)
С, Java, PHP
a ^ b или a ** b возведение в степень BASIC, Fortran, Ruby
Логические
a & b, или a && b, или a and b И практически все
<code>a | b, или a || b, или a or b ИЛИ
~a, или !a, или not a НЕ
a = b или a == b

a <> b или a != b

проверка на равенство

проверка на неравенство

a > b, a >= b

a < b, a <= b

больше, больше или равно

меньше, меньше или равно

a ? b : c тернарный условный оператор (если условие a истинно, всё выражение равно b, иначе c) С, C++, Java, PHP
Строковые
a + b или a & b или a.b (в языке PHP) конкатенация (слияние) практически все

См. также

en:Operator (programming)

he:אופרטור (תכנות) ja:演算子 pl:Operator (programowanie)

Личные инструменты

Served in 0.070 secs.