Gosub

Springt zu einem bestimmten Label und setzt dort die Ausführung bis zu einem Return fort.

Gosub, Label

Parameter

Label

Name eines Labels, Hotkey-Labels oder Hotstring-Labels, das angesprungen werden soll, um alle Befehle unterhalb von Label bis zu einem Return oder Exit auszuführen. Ein Return bewirkt, dass das Skript zum ersten Befehl unterhalb von Gosub zurückspringt und dort die Ausführung fortsetzt. Exit beendet den aktuellen Thread.

Bemerkungen

Label kann, wie die meisten Parameter von anderen Befehlen auch, eine Variablenreferenz wie %MeinLabel% sein, um den Inhalt der Variable als Ziel zu verwenden. Allerdings geschieht das auf Kosten der Leistung, weil das Ziellabel jedes Mal neu gesucht werden muss und nicht wie sonst nur beim Starten des Skripts.

Es ist möglich, ein dynamisches Label wie %MeinLabel% anzugeben. In diesem Fall wird ein Fehlerdialogfenster angezeigt, wenn das Label nicht existiert. Um das zu verhindern, leiten Sie eine Überprüfung mit IsLabel() ein. Zum Beispiel:

if IsLabel(VarMitLabelName)
    Gosub %VarMitLabelName%

Obwohl Gosub für einfache, allgemeine Subroutinen nützlich ist, wäre es ratsam, für komplexere Anliegen Funktionen zu verwenden.

Siehe auch

Return, Funktionen, IsLabel(), Blöcke, Loop, Goto

Beispiele

#1

Gosub, Label1 
MsgBox, Die Label1-Subroutine hat das Return erreicht (sie ist fertig).
return

Label1:
MsgBox, Die Label1-Subroutine läuft gerade.
return