SAP ABAP 字符串模版 (String Template) 是一个帮助我们写出整洁的 ABAP 代码的好帮手。
按照本教程一贯的作风,我们还是通过实际的简单例子来学习。
假设我们的需求是生成如下这个形式的字符串:
Hello '{用户名}', your work is '{工作名}'
其中 Hello 和 , 以及 your work is 这些是静态硬编码的字符串。而大括号里的用户名,工作名都是占位符号,在代码运行时,由 ABAP 变量的实际值所替代。
注意这里的需求细节,两个占位符的值最后实际输出时,需要被单引号 ' 所包裹。
和其他高级编程语言一样,ABAP 也有很多种方式实现这个需求。
实现方法1:使用字符串连接符号 &&
这种办法简单直接粗暴,看下面的代码:
REPORT zst. DATA: name TYPE string VALUE 'Jerry', work TYPE string VALUE 'ABAP', result TYPE string. result = 'Hello ' && '''' && name && ''',' && 'your work is ' && '''' && work && ''''. WRITE:/ result.
这个解决方案是不合格的,我们先看看执行结果如何:
可以看到,尽管我们有意在 ABAP 代码里在 Hello
后面留了一个空格符号,但是运行时,这个符号没有被 ABAP 系统考虑到。、
同时,is
和 ABAP
之间的空格也被吞了。
究其原因,在笔者之前的教程里已经做过介绍:
- 5. ABAP 标准培训教程 BC400 学习笔记之五:ABAP 编程语言的变量,常量和字面量,以及文本符号
- 9. ABAP 中的变量和常量
- 28. SAP ABAP 字符串变量容易疏忽和混淆的一些知识点
通过单引号 '
定义的文本字段字面量
,其末尾的空格符号会自动被 ABAP 系统忽略。
那么这个需求到底如何正确实现呢?讲解过程如下。