ГОСТ Р И С 010303-11— 2009
ENTITY Е2
SUBTYPE OF (Е1);
attribA : INTEGER:
attribB : NTEGER;
attribC : INTEGER:
END_ENTTTY;
LOCAL
a : El;
b : E2:
ENDLOCAL;
— построим экземпляры сложных объектов а и b,
— используя оператор конструирования экземпляра сложного объекта
а := Е1 (0.0.1-0,2.0) 11 Е2( 1.2,3);
b := Е1 (0.0,1.0.2.0) ||Е2(3,2,1);
— проверим значения в а и Ь атрибутов.
— объявленных в Е1
а\Е1 = b\EI -- TRUE
С
это эквивалентно следующему:
(a.attribl = b.attribl) AND
(a.attrib2 = b.attrib2) AND
(a.attrib3 = b.attrib3)
*)
2 В данном примере показано использование групповой ссылки для указания конкретного
объектного типа данных, который может быть использован для имени атрибута.
ENTITY fool;
attr : REAL:
END_ENTTTY:
ENTITY foo2
SUBTYPE OF(fool);
attr2 : BOOLEAN:
END_ENTTTY:
ENTITY t;
attr : BINARY:
END_ENTITY:
TYPE crazy=SELECT(foo2,t);
ENDTYPE;
LOCAL
v :crazy;
ENDLOCAL;
IF’THIS.F002’IN TYPEOF(v) THEN —
—
—
v\foo1.attr := 1.5;—
этим обеспечивается отсутствие
непредсказуемых результатов
(иногда это называется «защита»).
присваивает 1,5 атрибуту vattr.
— так как attr определен в fool, в групповой ссылке
- - должен использоваться fool.
END
F;
12.8 Вызов функции
Вызов функции активизируетданную функцию. Вызов функции состоит из идентификатора функции,
за которым может следовать список фактических параметров. Число, тип и порядокследования фактичес
ких параметров должны соответствовать формальным параметрам, определенным для данной функции.
Вызов функции возвращает значение функции при подстановке вобъявлении функции фактических пара
метров вместо формальных параметров.
П р и м е ч а н и е — Фактические параметры функции могут иметь неопределенное (?) значение. Функция
должна корректно обрабатывать такие значения и может сама возвращать неопределенное значение.
Активизация функции расширяет пространство экземпляров. Любые экземпляры, созданные в про цессе
выполнения функции, должны быть однозначно идентифицируемыми во всей совокупности извест-
88