変数

さて、変数についてお話しましょう。変数は、スクリプトの実行ごとに一定ではない値を保存するために使用できます。これらの値は、あらゆる型のデータ、あらゆる種類のデータ構造、または他のオブジェクトへの参照です。多くのプログラミング言語とは異なり、JMPの変数は宣言したり、スクリプトの先頭でリストしたりする必要がなく、特定のデータ型の保存に限定されません。そのため、既存の変数にいつでも新しい値を代入でき、その新しい値は、古い値と同じ型のデータや参照である必要はありません。変数にはスコープ、つまりJMP内で使用可能な定義された領域と時間があります。変数が使用可能な領域は、名前空間とも呼ばれます。名前空間とは、その名前が特定の値またはオブジェクト参照に関連付けられている空間です。デフォルトでは、変数はグローバルであり、グローバル名前空間に存在します。グローバル変数は、現在のJMPセッションが存在する限り、JMPのどこでも使用できます。つまり、グローバル変数はJMPを終了するまで保持されます。スクリプトで計算された合計を格納するグローバル変数 s を作成したとします。現在の JMP セッション中に実行されるすべてのスクリプトから、この変数にアクセスできます。ただし、複数のスクリプトで同じ変数名(合計を表す変数 s やカウンタを表す変数 i など)を使用する場合、それらの値が衝突する可能性があることを考慮する必要があります。つまり、2 番目のスクリプトの s で 1 番目のスクリプトの s の値を上書きするつもりはなかったとしても、両方のスクリプトで同じ名前のグローバル変数が使用されている場合、まさに同じことが起こります。同じ名前のグローバル変数の異なるコピーを持つことはできないためです。そのため、変数のスコープを制限して、限られた範囲または限られた時間のみで使用できるようにすることが有効です。これを実現する方法の 1 つは、ローカル変数を使用することです。ローカル変数は、限られた名前空間に制限された変数であり、スクリプトの実行中のみ一時的に使用できます。 Local関数を使用してローカル変数を作成すると、スクリプト内の名前を管理し、グローバル名前空間での衝突を回避するのに役立ちます。グローバル変数を使用する代わりに、Here名前空間を使用することもできます。スクリプト内でNames Default to関数を使用し、ブール引数としてaを指定すると、スクリプトごとに固有のHere名前空間が作成されます。これにより、Local関数を使用せずに、変数のスコープを個々のスクリプトに制限できます。必要に応じて他の名前空間を作成および管理できます。JMPには、Global、Here、Local名前空間に加えて、いくつかの定義済み名前空間が含まれています。