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) |