Предисловие: не претендую на истину в последней инстанции.
Приём, я на связи.
В блупринтах ГУЧа есть такая возможность: сворачивать кучу блоков в один блок, дабы избегать копипастов одного и того же кода, или просто сделать приятное глазу. Кто знаком с классическим программирование, тот в курсе что такое функция и зачем она нужна. Но у ГУЧа есть свои особенности.
Итак, давайте разберём что такое CollapseGraph, Macro и Function, в чём разница, и какой способ где лучше применять. Не буду писать, как они создаются и упоминать, что все они имеют возможность создания входного и выходного блока с добавлением параметров/переменных.
CollapseGraph
CollapseGraph — типичное сворачивание выделенных блоков в один блок. Тоже самое что взять кучу файлов и поместить в одну папку. Как функцию не вызвать, то есть ссылку на эту папку не создать (хотя можно сделать CustomEvent, но это другая история). При копировании создаётся второй экземпляр, вторая идентичная папка.
Возможности:
- Свернуть блоки
- Delay использовать можно
Ограничения:
- Не вызвать как функцию
- Входные параметры не могут использоваться как Get переменные
- Нельзя создавать локальные переменные
Применение:
Удобен в использовании, когда перед глазами много блоков, а разделить как-то всё это нужно, дабы не ломать глаза и мозг. Использовать только в тех ситуация, когда не требуется многократное использование кода.
Macro
Macro — аналогичен CollapseGraph, с той лишь разницей что есть возможность вызвать как функцию (создать ссылку на папку).
Возможности:
- Свернуть блоки
- Delay использовать можно
- Вызвать как функцию
Ограничения:
- Входные параметры не могут использоваться как Get переменные
- Нельзя создавать локальные переменные
Применение:
В отличии от CollapseGraph применять можно многократно. В некоторых случаях заменяет функцию. Отлично подходит для простых несложных расчётов. Но если у вас большое разнообразие блоков и их очень много, всё же лучше посмотреть в сторону функции.
Function
Function — типичная (почти) функция. Кардинально отличается от CollapseGraph, немного напоминает Macro. Большой плюс, что можно использовать параметры в качестве локальных get переменных, а также создавать свои локальные переменные. Лишь один существенный минус — нельзя использовать Delay.
Возможности:
- Свернуть блоки
- Вызов функции (ну ясень перец)
- Можно использовать входные параметры как Get переменные
- Можно создавать локальные переменные
Ограничения:
- Нельзя использовать Delay.
Применение:
Лучше всего применять, когда у вас много входных параметров/переменных. Много блоков, большие громоздкие расчёты. Обидно, что нельзя использовать Delay.
Итак, я описал разницу между этими способами, написал где какой лучше применять, углубленно расписывать не стал. Этого будет достаточно в большинстве случаев. Надеюсь кому-то помогло.
Конец связи.
Источник: DTF