Sap-abap-constants-literals
SAP ABAP-定数とリテラル
リテラルは、プログラムのソースコード内で作成する名前のないデータオブジェクトです。 それらはその価値によって完全に定義されます。 リテラルの値を変更することはできません。 定数は、宣言ステートメントを使用して静的に作成された名前付きデータオブジェクトです。 定数は、プログラムのメモリ領域に格納されている値を割り当てることで宣言されます。 定数に割り当てられた値は、プログラムの実行中に変更できません。 これらの固定値もリテラルと見なすことができます。 リテラルには、数値と文字の2種類があります。
数値リテラル
数値リテラルは数字のシーケンスで、前に記号を付けることができます。 数値リテラルには、小数点区切り文字や仮数と指数を使用した表記はありません。
以下は、数値リテラルのいくつかの例です-
183.
-97.
+326.
文字リテラル
文字リテラルは、単一引用符で囲まれたABAPプログラムのソースコード内の英数字のシーケンスです。 引用符で囲まれた文字リテラルは、事前定義されたABAPタイプCを持ち、テキストフィールドリテラルとして記述されます。 「逆引用符」で囲まれたリテラルは、ABAPタイプSTRINGを持ち、文字列リテラルとして記述されます。 フィールドの長さは、文字数によって定義されます。
注-テキストフィールドリテラルでは、末尾の空白は無視されますが、文字列リテラルでは考慮されます。
次に、文字リテラルの例をいくつか示します。
テキストフィールドリテラル
REPORT YR_SEP_12.
Write 'Tutorials Point'.
Write/'ABAP Tutorial'.
文字列フィールドリテラル
REPORT YR_SEP_12.
Write `Tutorials Point `.
Write/`ABAP Tutorial `.
出力は上記の両方のケースで同じです-
Tutorials Point
ABAP Tutorial
注意-定数の値を変更しようとすると、構文エラーまたは実行時エラーが発生する場合があります。 クラスまたはインターフェイスの宣言部分で宣言する定数は、そのクラスまたはインターフェイスの静的属性に属します。
定数声明
CONSTANTSステートメントを使用して、名前付きデータオブジェクトを宣言できます。
以下は構文です-
CONSTANTS <f> TYPE <type> VALUE <val>.
CONSTANTSステートメントは、DATAステートメントに似ています。
<f>は、定数の名前を指定します。 TYPE <type>は<f>という名前の定数を表し、既存のデータ型<type>と同じ技術属性を継承します。 VALUE <val>は、宣言された定数名<f>に初期値を割り当てます。
注-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.
比較で定数参照を使用することも、プロシージャに渡すこともできます。