変数および定数の宣言

EGL プログラム内の変数および定数の予約ストレージ。 定数値は、実行時に変更することはできません。

すべての EGL 変数を明示的に宣言する必要があります。他の言語の中には、変数を宣言しなくても使用できるものがありますが、EGL では宣言しなければ使用できません。

構文

変数宣言の構文図
varName
ストレージを予約している変数の名前。
type
変数がベースにする基本タイプまたはユーザー定義パーツのいずれか。
property
変数用のオプション・プロパティー/値のペア。
initializer
変数の初期値を指定できます。

変数

以下の方法で変数を宣言できます。
  • 次の例のように、複数の EGL プリミティブ型のうちの 1 つを変数のベースにすることができます (『プリミティブ・データ型』を参照)。
      customerBalance DECIMAL(9,2);
  • 次の例のように、DataItem パーツまたはレコード・パーツを変数のベースにすることができます。
      myCustomer CustomerRecord;
  • 次の辞書の例のように、複数の事前定義パーツのうちの 1 つを変数のベースにすることができます。
      myDictionary Dictionary 
      {
        empnum=0005,
        lastName="Twain",
        firstName="Mark",
        birthday="021460"
      };
  • パーツをベースにした変数を宣言するときは、プロパティー (パーツまたは変数に関する情報) を指定できます。 これらの変数により、パーツ自体を定義するときに宣言したプロパティーが上書きされる場合があります。 詳しくは、プロパティーを参照してください。
  • 他のレコードによって宣言されているメモリー領域を再定義するレコードを宣言できます。詳しくは、redefinesを参照してください。
  • プログラムまたはその他のメイン・パーツは、 プログラムまたは実行単位に対してグローバルな変数として扱われる、DataTable のフィールドにアクセスできます。 use 文に DataTable がリストされている場合は、単純な構文を使用してそれらのフィールドにアクセスできます。useを参照してください。
  • プログラムは、テキストまたは印刷書式のフィールドにアクセスできます。つまり、書式をプログラムに対してグローバルな変数として扱います。プログラムは、use 文に関連する formGroup を組み込む必要があります。useを参照してください。
  • プログラムまたはその他のメインのロジック・パーツは、 ライブラリー関数の外側で宣言されるライブラリー変数にアクセスできます。 それらの変数は、実行単位に対してグローバルです。 use 文にライブラリーがリストされている場合は、単純な構文を使用してそれらのフィールドにアクセスできます。useを参照してください。

型拡張文字

型の概念は、特定の変数や式が値を表す方法を説明します。型はまた、互換性を判別します。 例えば、ストリングに数値の文字表現を追加したり、文字の整数コード・ポイント表現に数値を追加したりすることはできますが、 文字に数値を追加することはできません。

EGL には、簡素で単純な INT や CHAR などのプリミティブ・データ型があります。 この言語には、型として機能する複雑なパーツもあります (例えば、JSF ハンドラーとして知られる JSFHandler 型のハンドラー・パーツを持つことができます)。さらに、EGL では次のテーブルで説明するように、変数を定義する際に型拡張として 2、3 の特殊文字を使用します。

表 1. EGL での型拡張文字
文字 意味
  anInt INT; この型の単一インスタンス。これが値型 (参照ではなく) の変数である場合は、データを含む名前付きのストレージ領域です。
[] anIntArray INT[]; この型の配列。配列を参照してください。
? aNullableInt INT?; NULL 値を含むことのできる変数。NULL 値および NULL 型を参照してください。

変数への値の代入

変数がプリミティブ型に基づく場合、宣言と同時に値を代入することができます。 次の例のように、assignment 文の左辺に全宣言を配置します
customerBalance DECIMAL(9,2) = 1001.22;

変数を宣言したら、通常の代入構文を使用していつでも新規の値を代入できます。 この件について詳しくは、代入 を参照してください。代入でのリテラルの使用法については、リテラルを参照してください。

定数

定数 は、実行時に変更できない、宣言された値です。 定数を宣言するには、予約語 const の後に、定数名、型、等号、および値を続けて指定します。以下に例を示します。
  const copyrStr String = "Copyright 2007 by CompanyB";
  const myArray  BIN[] = [36, 49, 64];
  const myArray02 BIN[][] = [[1,2,3],[5,6,7]];

定数は、レコードまたはその他の複雑な構造に入れることはできません。

関数パラメーターの修飾子として予約語 const を含めることができます。詳しくは、パラメーター修飾子を参照してください。

単一の文内で複数の変数または定数を宣言するには、 次の例のように、ID 同士をコンマで区切ります。
  const myString01, myString02 STRING = "INITIAL";
  myVar01, myVar02, myVar03 CHAR(5);
  myRecord01, myRecord02 ExampleRecord;

フィードバック