SAP ABAP - 常量 & 字面量

  • 简述

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

    数字字面量是可以有前缀符号的数字序列。在数字字面量中,没有小数点分隔符,也没有尾数和指数的表示法。
    以下是数字字面量的一些示例 -
    
    183. 
    -97. 
    +326.
    
  • 字符字面量

    字符字面量是 ABAP 程序源代码中用单引号括起来的字母数字字符序列。用引号括起来的字符字面量具有预定义的 ABAP 类型 C,并被描述为文本字段字面量。用“反引号”括起来的字面量具有 ABAP 类型 STRING,并被描述为字符串字面量。字段长度由字符数定义。
    Note- 在文本字段字面量中,尾随空白将被忽略,但在字符串字面量中,它们将被考虑在内。
    以下是字符字面量的一些示例。

    文本字段字面量

    
    REPORT YR_SEP_12. 
    Write 'CAINIAOYA'.
    Write / 'ABAP Tutorial'.  
    

    字符串字段字面量

    
    REPORT YR_SEP_12. 
    Write `CAINIAOYA `.
    Write / `ABAP Tutorial `. 
    
    上述两种情况的输出相同 -
    
    CAINIAOYA
    ABAP Tutorial
    
    Note− 当我们尝试更改常量的值时,可能会出现语法或运行时错误。在类或接口的声明部分中声明的常量属于该类或接口的静态属性。
  • 常量声明

    我们可以借助 CONSTANTS 语句来声明命名数据对象。
    以下是语法 -
    
    CONSTANTS <f> TYPE <type> VALUE <val>.
    
    CONSTANTS 语句与 DATA 语句类似。
    <f> 指定常量的名称。TYPE <type> 表示一个名为<f> 的常量,它继承了与现有数据类型<type> 相同的技术属性。VALUE <val> 将初始值分配给声明的常量名称 <f>。
    Note− 我们应该在 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 'CAINIAOYA Ltd',
    Place(10) TYPE C VALUE 'India',  
    END OF EMPLOYEE.
    
    在上面的代码片段中,EMPLOYEE 是一个复杂的常量,由 Name、Organization 和 Place 字段组成。
    以下语句声明一个常量引用 -
    
    CONSTANTS null_pointer TYPE REF TO object VALUE IS INITIAL.
    
    我们可以在比较中使用常量引用,也可以将其传递给过程。