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