SAPABAP-定数とリテラル
リテラルは、プログラムのソースコード内で作成する名前のないデータオブジェクトです。それらはそれらの値によって完全に定義されます。リテラルの値を変更することはできません。定数は、宣言型ステートメントを使用して静的に作成された名前付きデータオブジェクトです。定数は、プログラムのメモリ領域に格納されている値を割り当てることによって宣言されます。定数に割り当てられた値は、プログラムの実行中に変更することはできません。これらの固定値は、リテラルと見なすこともできます。リテラルには、数値と文字の2種類があります。
数値リテラル
数値リテラルは、接頭辞記号を付けることができる数字のシーケンスです。数値リテラルには、小数点の区切り文字や仮数と指数の表記はありません。
以下は、数値リテラルのいくつかの例です-
183.
-97.
+326.
文字リテラル
文字リテラルは、単一引用符で囲まれたABAPプログラムのソースコード内の英数字のシーケンスです。引用符で囲まれた文字リテラルには、事前定義されたABAPタイプCがあり、テキストフィールドリテラルとして記述されます。「逆引用符」で囲まれたリテラルは、ABAPタイプSTRINGであり、文字列リテラルとして記述されます。フィールド長は文字数によって定義されます。
Note −テキストフィールドリテラルでは、末尾の空白は無視されますが、文字列リテラルではそれらが考慮されます。
以下は、文字リテラルの例です。
テキストフィールドリテラル
REPORT YR_SEP_12.
Write 'Tutorials Point'.
Write / 'ABAP Tutorial'.
文字列フィールドリテラル
REPORT YR_SEP_12.
Write `Tutorials Point `.
Write / `ABAP Tutorial `.
上記の両方の場合で出力は同じです-
Tutorials Point
ABAP Tutorial
Note−定数の値を変更しようとすると、構文エラーまたは実行時エラーが発生する可能性があります。クラスまたはインターフェースの宣言部分で宣言する定数は、そのクラスまたはインターフェースの静的属性に属します。
CONSTANTSステートメント
CONSTANTSステートメントを使用して、名前付きデータオブジェクトを宣言できます。
以下は構文です-
CONSTANTS <f> TYPE <type> VALUE <val>.
CONSTANTSステートメントはDATAステートメントに似ています。
<f>は、定数の名前を指定します。TYPE <type>は、既存のデータ型<type>と同じ技術属性を継承する<f>という名前の定数を表します。VALUE <val>は、宣言された定数名<f>に初期値を割り当てます。
Note−CONSTANTSステートメントでVALUE句を使用する必要があります。句「VALUE」は、宣言中に定数に初期値を割り当てるために使用されます。
基本定数、複素定数、参照定数の3種類の定数があります。次のステートメントは、CONSTANTSステートメントを使用して定数を定義する方法を示しています。
REPORT YR_SEP_12.
CONSTANTS PQR TYPE P DECIMALS 4 VALUE '1.2356'.
Write: / 'The value of PQR is:', PQR.
出力は-
The value of PQR is: 1.2356
ここでは、基本データ型を指し、基本定数と呼ばれます。
以下は、複素定数の例です-
BEGIN OF EMPLOYEE,
Name(25) TYPE C VALUE 'Management Team',
Organization(40) TYPE C VALUE 'Tutorials Point Ltd',
Place(10) TYPE C VALUE 'India',
END OF EMPLOYEE.
上記のコードスニペットでは、EMPLOYEEは、Name、Organization、Placeフィールドで構成される複雑な定数です。
次のステートメントは、定数参照を宣言します-
CONSTANTS null_pointer TYPE REF TO object VALUE IS INITIAL.
比較に定数参照を使用することも、プロシージャに渡すこともできます。