Литералы — это безымянные объекты данных, которые вы создаете в исходном коде программы. Они полностью определяются их стоимостью. Вы не можете изменить значение литерала. Константы — это именованные объекты данных, созданные статически с помощью декларативных операторов. Константа объявляется путем присвоения ей значения, которое хранится в области памяти программы. Значение, присвоенное константе, не может быть изменено во время выполнения программы. Эти фиксированные значения также можно рассматривать как литералы. Существует два типа литералов — числовые и символьные.
Числовые литералы
Числовые литералы — это последовательности цифр, которые могут иметь префиксный знак. В числовых литералах нет десятичных разделителей и нет обозначений с мантиссой и показателем степени.
Ниже приведены некоторые примеры числовых литералов —
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 <тип> представляет константу с именем <f>, которая наследует те же технические атрибуты, что и существующий тип данных <тип>. VALUE <val> присваивает начальное значение объявленному константному имени <f>.
Примечание. Мы должны использовать предложение 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.
Мы можем использовать постоянную ссылку в сравнениях или передавать ее процедурам.