SAP ABAP - Константы и литералы

Литералы - это безымянные объекты данных, которые вы создаете в исходном коде программы. Они полностью определяются своей ценностью. Вы не можете изменить значение литерала. Константы - это именованные объекты данных, созданные статически с помощью декларативных операторов. Константа объявляется путем присвоения ей значения, которое хранится в области памяти программы. Значение, присвоенное константе, не может быть изменено во время выполнения программы. Эти фиксированные значения также можно рассматривать как литералы. Есть два типа литералов - числовые и символьные.

Числовые литералы

Числовые литералы - это последовательности цифр, которые могут иметь знак префикса. В числовых литералах нет десятичных разделителей и нет записи с мантиссой и экспонентой.

Ниже приведены несколько примеров числовых литералов -

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> представляет константу с именем <f>, которая наследует те же технические атрибуты, что и существующий тип данных <type>. VALUE <val> присваивает начальное значение объявленному имени константы <f>.

Note- Мы должны использовать предложение VALUE в заявлении CONSTANTS. Предложение «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.

Мы можем использовать постоянную ссылку при сравнении или можем передать ее процедурам.