codecamp

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"用于在声明期间为常量赋予初始值。

我们有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.

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

SAP ABAP 变量
SAP ABAP 运算符
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }