Структуры данных

Предыдущая страницаВ началоСледующая страница

Группа Структуры данных содержит операторы, предназначенные для работы с кортежами и массивами, передающимися в значениях универсального пути. Кортежи могут состоять из элементов разных типов и обозначаются круглыми скобками. Массивы представляют собой группы однотипных элементов произвольной длины и обозначаются квадратными скобками.

Создать кортеж. Создаёт данные типа кортеж. В настройках оператора с помощью аргументов может быть добавлено произвольное количество значений элементов разных типов.

Внимание! При создании кортежа должен быть задан минимум 1 аргумент.

Элемент кортежа. Возвращает значение элемента кортежа. В настройках оператора выбирается номер элемента, значение которого будет получено, и указывается сам кортеж.

Заменить в кортеже. Заменяет значение элемента кортежа. В настройках оператора выбирается номер элемента, значение которого будет заменено, указывается кортеж и новое значение элемента кортежа.

Группировка. Группирует входящие значения элементов по заданному ключу. Результатом работы оператора является набор массивов.

В настройках аргументов оператора указываются: путь к входным значениям; путь к ключу, по которому будет осуществляться группировка входных значений в выходной(-ые) массив(-ы); привязка групп, определяющая варианты получения выходных групп для каждого из входных значений.

Набор массивов формируется из групп массивов. Например, для входящих объектов А (ключ 1), B (ключ 2) и С (ключ 2) будет сформирована группа, состоящая из двух массивов [A] и [B, C], так как есть два уникальных значения ключа. А сам выходной набор массивов будет состоять из этих групп согласно правилу привязки групп. Группа будет выводиться для каждого входного значения.

Внимание! Оператор Группировка работает с элементами на входе, а не с элементами, полученными в аргументах, и обрабатывает входные значения не независимо друг от друга. Данная особенность в зависимости от конструкции универсального пути может приводить к получению разных результатов.

Значения аргумента Привязка групп могут быть следующими:

"Не привязывать". Для входного значения ничего не будет возвращено. Например, для входящих объектов А (ключ 1), B (ключ 2) и С (ключ 2) выходные группы получены не будут.

"Привязывать все". Для входного значения будут возвращены все группы, даже те, в которые оно не вошло. Например, для входных объектов А (ключ 1), B (ключ 2) и С (ключ 2) будут получены следующие выходные группы: [А], [B, С], [А], [B, С], [А], [B, С] (всего 6 значений, по 2 группы на каждое входное значение).

"Привязывать входящие". Для входного значения будет возвращена только та группа, в которую оно вошло. Например, для входных объектов А (ключ 1), B (ключ 2) и С (ключ 2) будут получены следующие выходные группы: [А], [B, С], [B, С] (группа [B, С] будет повторяться дважды, так как она получена из двух входных значений).

"Привязывать первый". Для входного значения будет возвращена только та группа, в которую оно вошло и расположено на первом месте. Например, для входных объектов А (ключ 1), B (ключ 2) и С (ключ 2) будут получены следующие выходные группы: [А], [B, С], так как значения A и B являются первыми в своих группах.

Например, в разрабатываемых проектах, контролёр 1 отвечает за работы 2, 4, 5 и 7, контролёр 2 – за работы 1 и 3, а контролёр 3 – за работу 6. На вход оператора Группировка подаются объекты работ 1, 2, 3, 4, 5, 6, 7. Тогда, при установке наименования контролёра в качестве ключа и выбора варианта привязки "Привязывать первый", будут получены выходные массивы из следующих групп работ: [работа 2, работа 4, работа 5, работа 7], [работа 1, работа 3], [работа 6].

Разгруппировка. Разворачивает пришедший на вход массив в набор значений элементов.

Например, на вход оператора поступают массивы [А], [B, С], [B, С]. В результате выполнения операции разгруппировки, на выходе будут получены значения объектов A, B и C.

Индекс. Возвращает элемент массива по индексу.

В настройках аргументов оператора указываются поступающий на вход массив и номер возвращаемого элемента в массиве (индекс). Если введённый индекс находится за пределами массива, то возврата результата не происходит.

Внимание! Нумерация элементов в массиве начинается с нуля, то есть первому элементу будет соответствовать индекс 0, второму – 1 и т.д.

Например, на вход оператора поступает массив [работа 2, работа 4, работа 5, работа 7] и задан индекс 1. В результате выполнения операции, на выходе будут возвращён элемент "работа 4".

[Индекс] =. Заменяет значение элемента массива по индексу, возвращая новый массив. Если введённый индекс находится за пределами массива, то возврата результата не происходит. В настройках аргументов оператора указываются поступающий на вход массив, номер элемента в массиве (индекс), значение которого будет заменено, а также новое значение элемента. Если введённый индекс находится за пределами массива, то возврата нового массива не происходит.

Внимание! Нумерация элементов в массиве начинается с нуля, то есть первому элементу будет соответствовать индекс 0, второму – 1 и т.д.

Например, на вход оператора поступает массив [работа 2, работа 4, работа 5], задан индекс 0 и выбрано новое значение "контролёр 1". В результате выполнения операции, на выходе будут возвращён новый массив: [контролёр 1, работа 4, работа 5].

Длина массива. Возвращает длину поступившего на вход массива. Под длиной массива подразумевается количество входящих в него элементов.

Например, на вход оператора поступают массив [А], состоящий из одного элемента и массив [B,С], состоящий из двух элементов. В результате выполнения операции, на выходе будут получены значения 1 и 2.

Первый элемент. Возвращает первый элемент массива.

Например, на вход оператора поступает массив [работа 2, работа 4, работа 5, работа 7]. В результате выполнения операции, на выходе будут возвращён элемент "работа 2".

Последний элемент. Возвращает последний элемент массива.

Например, на вход оператора поступает массив [работа 2, работа 4, работа 5, работа 7]. В результате операции, на выходе будут возвращён элемент "работа 7".

Кортеж в массив. Разворачивает массив, который находится внутри кортежа, преобразуя кортеж с массивом в массив кортежей. В настройках оператора выбирается номер элемента, который является массивом внутри кортежа и указывается сам кортеж.

Например, на вход оператора поступает кортеж (A, [работа 1, работа 3], Да), в котором элемент под номером 1 является массивом, сформированным с помощью оператора Группировка. Таким образом, в настройках оператора Кортеж в массив указывается номер элемента: "1". В результате выполнения операции, на выходе будет получен массив

[(A, работа 1, Да), (A, работа 3, Да)], состоящий из двух кортежей, внутри каждого из которых будет находиться одиночный элемент исходного массива.

Массив в кортеж. Сворачивает массив кортежей в кортеж массивов. Если элемент исходного кортежа в поступающем на вход массиве сам является массивом, то в итоговый результат будет добавлен не он, а его элементы.

Например, на вход оператора поступает массив кортежей [(Да, [1], А), (Да, [2], А), (Да, [3,4], А)]. При этом в каждом из кортежей один из элементов является массивом. В результате выполнения операции, на выходе будет получен кортеж массивов ([Да, Да, Да], [1, 2, 3, 4], [А, А, А]).