SAP ABAP - 常量与字面量



字面量是在程序源代码中创建的未命名的数据对象。它们完全由其值定义。您无法更改字面量的值。常量是使用声明语句静态创建的命名数据对象。常量是通过为其分配一个存储在程序内存区域中的值来声明的。在程序执行期间,不能更改分配给常量的值。这些固定值也可以视为字面量。字面量有两种类型:数值型和字符型。

数值型字面量

数字字面量是数字序列,可以有前缀符号。在数字字面量中,没有小数点分隔符,也没有尾数和指数表示法。

以下是一些数值型字面量的示例:

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 语句声明命名数据对象。

以下是语法:

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

CONSTANTS 语句类似于 DATA 语句。

<f> 指定常量的名称。TYPE <type> 表示名为 <f> 的常量,它继承与现有数据类型 <type> 相同的技术属性。VALUE <val> 为声明的常量名称 <f> 分配初始值。

注意 - 我们应该在 CONSTANTS 语句中使用 VALUE 子句。“VALUE”子句用于在声明常量时为其分配初始值。

我们有三种类型的常量,例如基本常量、复杂常量和引用常量。以下语句显示了如何使用 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.

我们可以使用常量引用进行比较,或者将其传递给过程。

广告
© . All rights reserved.