SAP ABAP 常量 Literals 与 Constants
Literals
是在程序源代码中创建的未命名数据对象。它们完全由其值定义。不能更改他们的值。
Constants
是使用声明性语句静态创建的命名数据对象。Constant 常量是通过给它赋值来声明的,该值存储在程序的内存区域中。在程序执行期间,不能更改赋值给常量的值。这些固定值也可以视为 Literals
。
有两种类型的 Literals
:
- 数字
- 字符
数字常量(Numeric Literals)
数字常量是可以有前缀符号的数字序列。在数字文字中,没有十进制分隔符,也没有尾数和指数表示法。
以下是数字常量的一些实例:
183.
-97.
+326.
字符常量(Character Literals)
字符常量是 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
语句来声明命名的数据对象。
语法如下:
CONSTANTS <f> TYPE <type> VALUE <val>.
CONSTANTS
语句类似于 DATA
语句。
- <f> 指定常量的名称。
- <type> 表示一个名为 <f> 的常量,它继承了与现有数据类型相同的属性。
VALUE
为声明的常量名称指定一个初始值。
注意:我们应该在 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.
我们可以在比较中使用常量引用,也可以将其传递给过程。