Копия викизеркало

Это зеркало вики с pascal.chat. Правка, история и вход — там.

Becomes/ru

English · Français · Suomi · Русский · 中文(中国)

=

Символ := (состоит из символа двоеточия и следующего за ним символа равно без пробела или другого символа) читается как присвоить и используется в Pascal для обозначения присваивания значения:

pascal
 A := 4 ;
 Circle_Area := Pi * Diameter ;
 Name := 'Smith' ;
 C := 1000 - C div 2 ;

Причина использования двух символов для присваивания (вместо одного, скажем, знака =) состоит в том, чтобы отличать присваивание значения от проверки на равенство.

Например, в языках программирования, кроме Pascal, можно написать так

A = B = D ;

или так

A = B = D

в зависимости от того, требуется ли указывать точку с запятой.

В зависимости от языка программирования смысл этого выражения будет различным. Например, в языках Fortran и Basic данная инструкция будет означать "присвоить переменной A значение ответа на вопрос равно ли B значению D?". В языке программирования C это выражение будет означать "присвоить переменным A и B значение переменной D". Инструкция такого типа является достаточно распространенной ошибкой в языке программирования C; компилятор часто выдает предупреждение, если вы не сообщите ему, что намеренно сделали это (множественное присваивание) с помощью заключения выражения в круглые скобки. (Правильным способом получить значение результата проверки на равенство в языке C является выражение A = B == D; ).

В языке Pascal такая путаница не происходит, потому что данное выражение синтаксически некорректно. Можно было бы написать выражение

pascal
A := B = D;

которое будет означать то же самое, что в языках Fortran или Basic, т.е. присвоить переменной A значение ответа на вопрос "равны ли переменные B и D?"

Для присваивания переменным A, B и D одинакового значения требуется явное разделение выражений следующим образом

A := D ; B := D ;

или

B := D ; A := B ;

или

A := D ; B := A ;

в зависимости от того, есть ли разница в выполнении или побочные эффекты (D может быть динамической переменной, такой как системный порт, функцией или свойством объекта, таким образом, значение идентификатора D может отличаться между первым и вторым использованием.)


From the Free Pascal wiki, page "Becomes/ru", as it stood on 2020-02-09 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Версия 3, последнее изменение: WikiArchive, .