SAP ABAP 常量 Literals 与 Constants

Literals 是在程序源代码中创建的未命名数据对象。它们完全由其值定义。不能更改他们的值。

Constants 是使用声明性语句静态创建的命名数据对象。Constant 常量是通过给它赋值来声明的,该值存储在程序的内存区域中。在程序执行期间,不能更改赋值给常量的值。这些固定值也可以视为 Literals

有两种类型的 Literals:

  • 数字
  • 字符

数字常量(Numeric Literals)

数字常量是可以有前缀符号的数字序列。在数字文字中,没有十进制分隔符,也没有尾数和指数表示法。

以下是数字常量的一些实例:

  1. 183.
  2. -97.
  3. +326.

字符常量(Character Literals)

字符常量是 ABAP 程序源代码中的字母数字字符序列,用单引号括起来。引号中包含的字符常量具有预定义的 ABAP 类型 C,并被描述为文本字段常量。"反引号" 中包含的常量具有 ABAP STRING 类型,并被描述为字符串常量。字段长度由字符数定义。

注意:在文本字段常量中,尾部空格将被忽略,但在字符串常量中,则不会。

以下是字符常量的一些实例:

文本字段常量
  1. REPORT YR_SEP_12.
  2. Write 'Tutorials Point'.
  3. Write / 'ABAP Tutorial'.
字符串字段常量
  1. REPORT YR_SEP_12.
  2. Write `Tutorials Point `.
  3. Write / `ABAP Tutorial `.

结果如下:

  1. Tutorials Point
  2. ABAP Tutorial
注意:当我们试图更改常量的值时,可能会出现语法或运行时错误。在类或接口的声明部分声明的常量属于该类或接口的静态属性。

CONSTANTS 语句

我们可以使用 CONSTANTS 语句来声明命名的数据对象。

语法如下:

  1. CONSTANTS <f> TYPE <type> VALUE <val>.

CONSTANTS 语句类似于 DATA 语句。

  • <f> 指定常量的名称。
  • <type> 表示一个名为 <f> 的常量,它继承了与现有数据类型相同的属性。
  • VALUE 为声明的常量名称指定一个初始值。

注意:我们应该在 CONSTANTS 语句中使用 VALUE 子句。子句 VALUE 用于在常量声明期间为其指定初始值。

我们有 3 种类型的常数,如基本常数、复常数和引用常数。

下面的语句显示如何使用 CONSTANTS 语句定义常量:

  1. REPORT YR_SEP_12.
  2. CONSTANTS PQR TYPE P DECIMALS 4 VALUE '1.2356'.
  3. Write: / 'The value of PQR is:', PQR.

结果如下:

  1. The value of PQR is: 1.2356

这里它指的是基本数据类型,称为基本常数。

以下是复杂常数的实例例:

  1. BEGIN OF EMPLOYEE,
  2. Name(25) TYPE C VALUE 'Management Team',
  3. Organization(40) TYPE C VALUE 'Tutorials Point Ltd',
  4. Place(10) TYPE C VALUE 'India',
  5. END OF EMPLOYEE.

在上面的代码片段中,EMPLOYEE 是一个复杂的常量,由 Name、Organization 和 Place 字段组成。

下面的语句声明了一个常量引用:

  1. CONSTANTS null_pointer TYPE REF TO object VALUE IS INITIAL.

我们可以在比较中使用常量引用,也可以将其传递给过程。