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 <f> TYPE <type> VALUE <val>.

CONSTANTS 语句与 DATA 语句类似。

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

注意- 我们应该在 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.

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