Record ExampleRecordPart type basicRecord 10 myField CHAR(5); 20 myField01 CHAR(1) = "1"; 20 myField02 CHAR(1) = "2"; 20 myArray01 CHAR(1)[3] = ["a", "b", "c"]; // 以下のエントリーでは、最初のエレメントに "z" を割り当てます // そして、(Java コードでは) 残りはブランクです 20 myArray02 CHAR(1)[3] = ["z"]; end
この規則は、フォーム・フィールドにも適用されます。ただし、DataTable 内のイニシャライザーを指定することはできません。
Record ExampleRecordPart type basicRecord myRecField INT = 2; end Program myProgram (myField03 INT = 3) myField04 STRING = "EGL"; function main() // myRecord.myRecField = 2 myRecord ExampleRecordPart; end end
Record partA 10 aa char(4) = "abcd"; end Record partB 10 bb char(4) = "1234"; end Program Example A partA; B partB { redefines="A" }; function main() // 次のそれぞれの文が "abcd" を書き込みます writeStdOut( A.aa ); writeStdOut( B.bb ); // メモリー領域を、レコード partB の定義を反映するように設定します set B initial; // 次のそれぞれの文が "1234" を書き込みます writeStdOut( A.aa ); writeStdOut( B.bb ); end end
固定構造体では、最下位レベルの構造体のフィールドのみが考慮されます。 例えば、HEX 型の構造体フィールドが CHAR 型の構造体の項目に従属している場合、メモリー領域は HEX の初期化に適した 2 進ゼロで初期化されます。
プログラムまたは関数パラメーターとして受け取られるレコードまたはフィールドは、自動的に初期化されません。
次の表に、初期化値の詳細を示します。
プリミティブ型 | 初期化値 |
---|---|
ANY | 変数の型は未定義です。 |
BIN (および整数型)、HEX、FLOAT、SMALLFLOAT | 2 進ゼロ |
CHAR、MBCHAR | 単一バイトのブランク |
DATE、TIME、TIMESTAMP | マシン・クロックの (TIMESTAMP の場合は、マスクが必要とするバイト数の) 現行値 |
DBCHAR | 2 バイトのブランク |
DECIMAL、MONEY、NUM、NUMC、PACF | 数値のゼロ |
INTERVAL | 前に正符号が付いた (マスクが必要とするバイト数の) 数値のゼロ |
UNICODE | ユニコードのブランク (16 進の 0020) |