記事ディレクトリ
第 9 章 ObjectScript - 多次元配列
多次元配列
ではObjectScript
、任意の変数を多次元配列 (配列とも呼ばれます) にすることができます。多次元配列は、何らかの方法で関連する値のセットを保持するためによく使用されます。ObjectScript
値に簡単かつ迅速にアクセスできるように、コマンドと関数が提供されています。
使用するシステム クラスとユーザー自身の設定に応じて、多次元配列を直接使用する場合もあれば、使用しない場合もあります。関連する値のセットを保存するためのコンテナーが必要な場合に、IRIS
クラスベースの代替手段を提供します。コレクションクラスを参照してください。
基本
多次元配列は、添え字によって定義される任意の数のノードで構成されます。次の例では、配列の複数のノードを設定し、配列の内容を出力します。
set myarray(1)="value A"
set myarray(2)="value B"
set myarray(3)="value C"
zwrite myarray
この例は、典型的な配列を示しています。
- 配列には添字が付いています。この場合、添え字は整数
1
、2
およびです3
。 - 配列の構造を事前に宣言する必要はありません。
myarray
配列自体の名前です。ObjectScript
アレイ全体または特定のノードで動作できるコマンドと関数を提供します。例えば:
kill myarray
ノードとそのサブノードを指定することもできますKILL
。
- 次のバリアントでは、 という
^myglobal
名前のGlobal
配列の複数の添字を設定します。つまり、値がディスクに書き込まれます。
set ^myglobal(1)="value A"
set ^myglobal(2)="value B"
set ^myglobal(3)="value C"
global
参照できる長さには制限があります。この制限は、global
名前の長さ、添え字の長さと数に影響します。制限を超えると、<SUBSCRIPT>
エラーが発生します。global
引用の最大長を参照してください。- ノード値の長さは、文字列の長さの制限より短くする必要があります。
多次元配列は、定義されたノードごとに 1 つの保存場所を予約するだけで、それ以上は予約されません。の場合global
、使用するすべてのディスク領域が動的に割り当てられます。
構造変化
前の例は、配列の一般的な形式を示しています。以下の変更の可能性があることに注意してください。
添字はいくつでも指定できます。例えば:
Set myarray(1,1,1)="grandchild of value A"
添え字には文字列を指定できます。以下が有効です。
set myarray("notes to self","2 Dec 2010")="hello world"
使用上の注意
学習者にObjectScript
よくある間違いは、global
配列と配列を混同することです。変数はローカルまたはGlobal
グローバルのいずれかであり、添え字がある場合とない場合があることに留意することが重要です。以下の表は、可能性を示しています。
変数の種類 | 例と注意事項 |
---|---|
添え字のないローカル変数 | Set MyVar=10 このような変数は一般的です。表示される変数のほとんどはおそらくこれに似ています。 |
添字付きローカル変数 | Set MyVar(1)="alpha" <br/>Set MyVar(2)="beta" Set MyVar(3)="gamma" このようなローカル配列は、関連する値のセットを渡す場合に便利です。 |
添字のないGlobal グローバル変数 |
^MyVar="saved note" 実際には、Global グローバル変数には通常添字が付いています。 |
添字付きのGlobal グローバル変数 |
Set ^MyVar($USERNAME,"Preference 1")=42 |