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.
Мы можем использовать постоянную ссылку при сравнении или можем передать ее процедурам.