Перейти на главную страничку сайта (список статей, файлы для скачивания)
Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.
Оригинал статьи в AutoHotkey.chm: "Gosub", в содержании - "Flow of Control" - "Gosub", v1.0.47.06.
Ник переводчика: Archangel.
Переходит к указанной метке и продолжает выполнение, пока не сталкивается с возвратом (Return).
Gosub, Label
Label | Имя произвольной метки, метки горячей клавиши или строки автозамены, к которой будет переход. Все команды, следующие в тексте скрипта после этой метки, будут выполняться, пока не встретится Return или Exit. "Return" заставляет скрипт перейти обратно, к первой команде после Gosub, и продолжить там выполнение. "Exit" завершает текущий поток. |
Как и с параметрами почти всех других команд, метка может быть ссылкой на переменную, типа %MyLabel%, когда название, сохраненное в переменной, используется как цель. Однако, производительность немного снижается, поскольку метка должна быть найдена каждый раз, а не только однажды, при первой загрузке скрипта. При использовании динамической метки, вроде %MyLabel%, будет показан диалог ошибки, если метка не будет существовать. Чтобы избежать этого, необходимо предварительно вызвать IsLabel(). Например:
if IsLabel(VarContainingLabelName) Gosub %VarContainingLabelName%
Команда Gosub полезна для простых подпрограмм общего назначения. В более сложных случаях подумайте об использовании функций (см. статью справки о функциях).
Gosub, Label1 MsgBox, Подпрограмма Label1 осуществила возврат (завершена). Return Label1: MsgBox, Подпрограмма Label1 выполняется Return
Уберём первый возврат (Return). Сначала выполнится действие №2, возвратится к действию №1 и затем снова действие №2.
Gosub, Label1 MsgBox, Действие №1 Label1: MsgBox, Действие №2 Return
Другой пример:
Gosub, Label1 MsgBox, Это сообщение мы не увидим ; Так как в Label1 есть команда Exit. Return Label1: MsgBox, Выход Exit ; Которая завершает как данную подпрограмму Label1, так и вызвавшую её.
Перейти на главную страничку сайта (список статей, файлы для скачивания)
© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.