Перейти к основному содержимому
Версия: 4.x

Операции со структурами (STRUCT, [])

Под структурами в платформе понимаются классы, объекты которых состоят из набора других объектов в фиксированном порядке. В платформе поддерживаются два оператора работы со структурами:

ОператорНазваниеОписаниеПримерРезультат
STRUCTСозданиеСоздает свойство, принимающее список операндов на вход, возвращающее структуру, состоящую из переданных объектовSTRUCT('a', 1)STRUCT('a', 1)
[ ]ОбращениеСоздает свойство, принимающее на вход операнд и фиксированное целое число, и возвращающее объект структуры, указанной в первом операнде, под номером, равным указанному целому числуSTRUCT('a',1)[2]1

Для структур поддерживаются операции сравнения, которые выполняются последовательно для каждого входящего в структуру объекта.

к сведению

Чтобы лучше представить как это работает, достаточно сказать, что физически структура это просто объединение преобразованных к битовым строкам объектов, входящих в эту структуру

Язык

Для создания свойства, создающего структуру используется оператор STRUCT.

Для создания свойства, возвращающего объект из структуры используется оператор [ ].

Примеры

objectStruct(a, b) = STRUCT(a, f(b));
stringStruct() = STRUCT(1, 'two', 3.0);
CLASS Letter;
attachment1 = DATA FILE (Letter);
attachment2 = DATA FILE (Letter);
letterAttachments (Letter l) = STRUCT(attachment1(l), attachment2(l));
secondAttachment(Letter l) = letterAttachments(l)[2]; // возвращает attachment2