Компонентный Паскаль/Введение в записи: различия между версиями

Содержимое удалено Содержимое добавлено
м revert (vandalism)
м <source> -> <syntaxhighlight> (phab:T237267)
 
Строка 11:
==Пример записи==
В тексте модуля, который приведён ниже, представлено объявление одно записи с несколькими полями:
<sourcesyntaxhighlight lang="oberon2">
MODULE TestHello07;
(* Этот пример показывает как объявлять
Строка 29:
BEGIN
END TestHello07.
</syntaxhighlight>
</source>
В секции VAR модуля объявлена переменная "r" с ключевым словом RECORD. Это не тип данных, это указатель на то, что переменная является точкой входа для записи. В самой записи могут быть любые поля любого типа, в неограниченном количестве (конечно, учитывая размер свободной памяти и разумность попытки разместить всё под одним объявление RECORD). Более того, в запись может быть включена другая запись, в которую может быть включена другая запись, в которую...
 
Строка 40:
 
Hello07.odc
<sourcesyntaxhighlight lang="oberon2">
MODULE TestHello07;
(* Этот пример показывает как объявлять
Строка 71:
BEGIN
END TestHello07.
</syntaxhighlight>
</source>
В этом примере присваиваются значения полям "coord_x" и "coord_y". В массиве "color" элементам с номерами 0 и 4 также присваиваются значения. Обратите внимание, на именование полей -- все они с маленькой буквы. В записях могут быть ''ссылки'' на процедуры, а процедуры должны именоваться с большой буквы (а иначе отличить одно от другого без чтения документации, либо исходных кодов -- будет тяжело). Если всё сделано правильно, то будет получен такой вывод:
<sourcesyntaxhighlight lang="dos">
компилируется "TestHello07" 156 32
старый модуль TestHello07 выгружен
5, 4
4, 0, 0, 0, -10,
</syntaxhighlight>
</source>
из которого можно сделать вывод, что действительно поля записи меняют свои значения.