メインコンテンツまでスキップ

変数

  • 代入すると変数が作成されます。 total = 0; 宣言のキーワードや型注釈はありません。
  • 変数は、最初に使用する位置よりソース テキスト上で 前 のどこかで代入されている必要があります。 そうでないとスクリプトはコンパイルされません (未定義の変数)。これは実際に何が実行されるかではなく、テキスト上の位置で判定されます。
  • そのため、if の分岐内でだけ代入された変数も、if の後で使用すればコンパイルされます。その分岐が実行されなかった場合、 変数は Integer の 0 を保持します。
  • スコープはスクリプトごとに 1 つです。 { } ブロックは新しいスコープを作りません。ループ カウンターはループの後も 最終値のまま残り、ブロック内で名前に代入すると、どこでも同じ変数が変更されます。
  • 変数はスクリプトの 1 回の実行の間だけ存在します。ディスパッチのたびに変数がない状態から始まり、同時に実行される 2 つのアクションが互いの変数を見ることはありません。実行をまたいで値を保持するにはストレージを使用します。
  • 変数は組み込み関数と同じ名前にすることもできます。x と x(…) はかっこの有無で区別されますが、 組み込み関数の名前を再利用することはお勧めしません。
if (MouseGetCursorX() > 500) {
side = "right";
}
UtilityPrint(StringFormat("side = {0}", side, "")); // コンパイルされる。分岐が実行されなかった場合は "side = 0" と出力

for (i = 0; i < 3; i = i + 1) { }
UtilityPrint(StringFormat("i after loop = {0}", i, "")); // 3 -- ブロック スコープはない