Подпрограмма в Пилоте - это собственно goto на метку. Используется, если в коде нужно много (несколько) раз выполнять одно и то же (однотипный кусок кода). В этом куске доступны все переменные основного тела скрипта. Разница лишь в том, что после её отработки Вас возвращают в то же место, откуда был вызов подпрограммы, с возможно уже модифицированными переменными (массивами) или уже с выполненными действиями. Тем не менее из подпрограммы возможен и переход goto, тогда Вы не возвратитесь в место вызова, а начнёте действие с того места, куда будет указывать переход goto. Да, с точки зрения "нормального" кода это не приветствуется, но в Пилоте это всё реализовано как надо. Я не видел проблем.
Разница между функцией и подпрограммой даже не знаю, есть ли она сейчас. В классических языках программирования есть конкретная интерпретация и разница между ними. Современные синтаксисы всё свалили в одну кучу. Раньше всё было просто, функция возвращает РЕЗУЛЬТАТ, подпрограмма просто выполняет кусок кода. Раньше конкретно различали параметр и переменную, сейчас, дабы не напрягать и без того ослабший мозг юзеров, всё свалили в одну кучу. Юзер чувствует себя прекрасно, а вот спецу найти косяки в чужом коде стало очень сложно. Поэтому никто не ищет - пишет свои косяки.
|