Sign in Join
Wiki copytemporary

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.

Revision 3, last changed by WikiArchive .

Edited on wiki.freepascal.org by 3 people, 2018–2020

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
UseroflazarusCreated page
Useroflazarus
Mathias (minor)
TrevFixed syntax highlighting; deleted category already in page template (minor)

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.