2012-05-01 2 views
2

В некоторых языках программирования, я вижу (напр.):Что такое оператор: =?

x := y 

Что это := оператор обычно называют и то, что она делает?

+1

Вы оставили :: =. Это появляется в языковых грамматиках, для обозначения «определено равным». – EJP

ответ

7

Это зависит от языка.

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

делает := средний =?

Я не могу вспомнить каких-либо языков, где := означает то же самое, как =.


В MySQL := и = оба используются для assignment, однако они не являются взаимозаменяемыми и выбор правильной зависит от контекста. Чтобы сделать ситуацию более запутанной, оператор = также используется для comparison. Интерпретация = как назначение, так и сравнение также зависит от контекста.

+2

Паскаль и Модула-2, разработанные Виром, используют оператор: = 'как оператор присваивания. –

+0

Также в Smalltalk –

+0

Также в [Pico] (http://pico.vub.ac.be/). –

2

Обычно я вижу это в псевдокоде, где это означает назначение. Таким образом, x: = y означает «установить значение x в значение y», тогда как x = y означает, что значение x равно значению y?

0

Многие языки используют общие операторы. Обычно = зарезервирован для назначения переменных и не должен рассматриваться в математическом контексте, если он один. Равенство на некоторых языках, таких как Java и Bash, проверено, хотя ==

1

PL/I имеет (имеет?) Оба = и :=. = используется как для назначения, так и для сравнения. Компилятор пытается выяснить, что вы имели в виду на основе контекста. Когда/если он решает сделать сравнение, когда вы действительно имели в виду назначение, вы можете использовать := для принудительного назначения.

Например, рассмотрим x=y=0; В C (для примера) это означало бы «назначить 0 на y, а затем результат этого (также 0) на x».

В PL/I это означает сравнение y с 0, а затем присвойте логический результат этого сравнения x (то есть, эквивалентному x = y == 0; в чем-то подобном C). Если вы (будучи здравомыслящим, в отличие от дизайнеров PL/I), подразумеваете, что это означает «назначить 0 на x и y», вы должны использовать x = y := 0; (или x := y := 0;).

Смежные вопросы