Labels

Inhaltsverzeichnis

Syntax und Verwendung

Ein Label identifiziert eine Codezeile und kann als Goto-Ziel oder zum Unterbrechen oder Fortsetzen einer bestimmten Schleife verwendet werden. Ein Label besteht aus einem Namen gefolgt von einem Doppelpunkt:

das_ist_ein_Label:

Abgesehen von Leerraumzeichen und Kommentaren darf kein weiterer Code auf der Zeile eines Labels stehen.

Namen: Labelnamen sind nicht Groß-/Kleinschreibung-sensitiv (bezogen auf ASCII-Buchstaben) und können aus Buchstaben, Zahlen, Unterstrichen und ASCII-fremden Zeichen bestehen. Zum Beispiel: MeineListView, Menü_Datei_Öffnen und outer_loop.

Gültigkeitsbereich: Jede Funktion hat ihre eigene Liste mit lokalen Labels. Innerhalb einer Funktion sind nur die Labels dieser Funktion für das Skript sichtbar/zugänglich.

Ziel: Das Ziel eines Labels ist die nächste ausführbare Codezeile. Ausführbarer Code umfasst Funktionen, Zuweisungen, Ausdrücke und Blöcke, aber keine Direktiven, Labels, Hotkeys oder Hotstrings. Im folgenden Beispiel verweisen run_notepad_1 und run_notepad_2 auf dieselbe Run-Zeile:

run_notepad_1:
run_notepad_2:
    Run "notepad"
    return

Ausführung: Labels haben wie Direktiven keine Wirkung, wenn sie während einer normalen Ausführung erreicht werden.

Label-ähnliche Schreibweisen

Hotkey- und Hotstring-Definitionen sehen aus wie Labels, sind aber keine.

Hotkeys bestehen aus einem Hotkey gefolgt von zwei Doppelpunkten.

^a::

Hotstrings bestehen aus einem Doppelpunkt, beliebig vielen Optionen, einem weiteren Doppelpunkt, einer Abkürzung und zwei Doppelpunkten.

:*:bzw::

Dynamische Labels

In einigen Fällen kann eine Variable anstelle eines Labelnamens verwendet werden. In solchen Fällen wird der in der Variable gespeicherte Name zur Lokalisierung des Ziellabels verwendet. Dies geschieht jedoch auf Kosten der Performanz, da das Ziellabel jedes Mal neu gesucht werden muss, nicht nur beim Start des Skripts.

Benannte Schleifen

Ein Label kann auch verwendet werden, um eine Schleife für die Anweisungen Continue und Break zu identifizieren. Dadurch kann das Skript von einer inneren Schleife heraus den aktuellen Durchlauf einer äußeren Schleife überspringen oder die äußere Schleife unterbrechen.

Funktionen, IsLabel, Goto, Break, Continue