Gosub

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

Gosub, Label

Parameter

Label

Name des Labels (auch Hotkey- oder Hotstring-Label), das angesprungen werden soll, wodurch die Befehle unterhalb von Label ausgeführt werden, bis ein Return oder Exit erreicht wird. Ein Return bewirkt, dass das Skript zum ersten Befehl unterhalb von Gosub zurückspringt und seine Ausführung dort fortsetzt. Exit beendet den aktuellen Thread.

Bemerkungen

Wie bei Parametern und den meisten anderen Befehlen auch, kann Label ein Variablenverweis wie %MeinLabel% sein, um den Inhalt der Variable als Ziel zu verwenden. Allerdings ist dadurch die Performance ein wenig beeinträchtigt, weil das Ziellabel nicht nur einmal (beim Starten des Skripts), sondern jedesmal neu eingelesen werden muss.

Wenn ein dynamisches Label wie %MeinLabel% den Namen eines nicht vorhandenen Labels enthält, wird eine Fehlermeldung angezeigt. Um das zu verhindern, ruft man vorher IsLabel() auf. Zum Beispiel:

if IsLabel(VarMitLabelname)
    Gosub %VarMitLabelname%

Zwar ist Gosub für einfache universelle Subroutinen nützlich, für komplexere Anliegen sindFunktionen allerdings besser geeignet.

Siehe auch

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

Beispiel

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

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