Обзор процедур

С точки зрения информатики, процедура — это многократно используемый фрагмент кода, выполняющий определенную задачу.

Blockly реализует процедуры как набор блоков, генерирующих код для определения процедуры и ее вызова.

Блоки вызова процедур и определения

→ Подробнее об использовании блоков .

→ Подробнее о создании пользовательских блоков процедур .

→ Дополнительная информация о создании пользовательских моделей процедур , которые позволяют добавлять новые функции, такие как типизированные параметры.

Встроенный или плагин

Blockly предоставляет две реализации блоков процедур.

Один из них существует в плагине @blockly/block-shareable-procedures , который реализует блоки процедур, основанные на базовой модели данных. Это позволяет вам делать что-то с блоками процедур, например, располагать блок определения в одном рабочем пространстве, а блок вызова — в другом. Плагин является рекомендуемой реализацией блоков процедур.

Другая — устаревшая реализация, представленная в ядре Blockly. Эти блоки не имеют базовой модели данных, и вся информация о процедурах поступает из самих блоков. Единственный способ узнать, какие процедуры доступны в рабочей области, — это проверить блоки определений процедур, содержащиеся в этой рабочей области. Эти блоки по-прежнему поддерживаются для обратной совместимости, но большинство разработчиков должны иметь возможность использовать новые блоки, предоставляемые плагином.

  • Если вы используете сериализацию XML, вы можете использовать новые блоки, но они не будут доступны для совместного использования в рабочих областях. Эта функция требует дополнительной сериализации, которая предоставляется только сериализатором JSON. При использовании XML новые блоки будут вести себя идентично устаревшим блокам. Узнайте больше об обновлении до JSON .

  • Если вы определили пользовательские блоки процедур, их необходимо обновить для работы с новыми моделями данных.

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