ラベル

目次

構文と使用法

ラベルはコード行を識別するもので、Gotoターゲットとして使用したり、ループから抜け出したり継続するループを指定したりすることができます。ラベルは、名前とコロンで構成されています:

this_is_a_label:

空白とコメントを除き、ラベルと同じ行に他のコードを記述することはできません。

名前:ラベル名は大文字と小文字を区別せず(ASCII文字)、アルファベット、数字、アンダースコア、非ASCII文字で構成されます。For example: MyListView, Menu_File_Open, and outer_loop.

スコープ:各関数はローカルラベルのリストを持つ。関数内では、その関数のラベルだけがスクリプトから見える/アクセスできる。

ターゲット:ラベルのターゲットは実行コードの次の行である。実行可能コードには、関数、代入、ブロックが含まれるが、ディレクティブ、ラベル、ホットキー、ホットストリングは含まれない。以下の例では、run_notepad_1run_notepad_2はともにRun行を指している:

run_notepad_1:
run_notepad_2:
    Run "notepad"
    return

実行:ディレクティブと同様に、ラベルは通常の実行中に到達しても何の効果もない。

Look-alikes

ホットキーとホットストリングの定義はラベルに似ていますが、ラベルではありません。

ホットキーは、ホットキーの後にダブルコロンが続く。

^a::

ホットストリングは、コロン、0個以上のオプション、もう1つのコロン、省略形、ダブルコロンで構成される。

:*:btw::

ダイナミック・ラベル

場合によっては、ラベル名の代わりに変数を使うこともできる。このような場合、変数に格納されている名前がターゲット・ラベルを探すのに使われる。しかし、スクリプトが最初にロードされたときに一度だけではなく、毎回ターゲット・ラベルを「ルックアップ」しなければならないため、パフォーマンスは若干低下する。

名前付きループ

ラベルは、Continue文やBreak文のループを識別するためにも使える。これによってスクリプトは、いくつでもネストされたループを簡単に続行したり抜け出したりできるようになる。

関数IsLabelGotoBreakContinue