Операции со структурами (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