С точки зрения информатики, процедура — это многократно используемый фрагмент кода, выполняющий определенную задачу.
Blockly реализует процедуры как набор блоков, генерирующих код для определения процедуры и ее вызова.
→ Подробнее об использовании блоков .
→ Подробнее о создании пользовательских блоков процедур .
→ Дополнительная информация о создании пользовательских моделей процедур , которые позволяют добавлять новые функции, такие как типизированные параметры.
Встроенный или плагин
Blockly предоставляет две реализации блоков процедур.
Один из них существует в плагине @blockly/block-shareable-procedures , который реализует блоки процедур, основанные на базовой модели данных. Это позволяет вам делать что-то с блоками процедур, например, располагать блок определения в одном рабочем пространстве, а блок вызова — в другом. Плагин является рекомендуемой реализацией блоков процедур.
Другая — устаревшая реализация, представленная в ядре Blockly. Эти блоки не имеют базовой модели данных, и вся информация о процедурах поступает из самих блоков. Единственный способ узнать, какие процедуры доступны в рабочей области, — это проверить блоки определений процедур, содержащиеся в этой рабочей области. Эти блоки по-прежнему поддерживаются для обратной совместимости, но большинство разработчиков должны иметь возможность использовать новые блоки, предоставляемые плагином.
Если вы используете сериализацию XML, вы можете использовать новые блоки, но они не будут доступны для совместного использования в рабочих областях. Эта функция требует дополнительной сериализации, которая предоставляется только сериализатором JSON. При использовании XML новые блоки будут вести себя идентично устаревшим блокам. Узнайте больше об обновлении до JSON .
Если вы определили пользовательские блоки процедур, их необходимо обновить для работы с новыми моделями данных.
Если вы определили пользовательские блоки определения процедур, но используете встроенный блок вызова процедур , вам необходимо продолжать использовать устаревший блок вызывающего абонента до тех пор, пока вы не обновите блок определения.