【转载】ABAP 字符串 ‘‘ || `` 区别

转载学习一下,正好用到,谢谢。

DATA ts TYPE TABLE OF string.
ts = VALUE #( ( 'A' ) ).

会报错的问题,报错为类型冲突。

从而重新理解了char以及string,字符串操作的几个符号。

首先,abap对string的定义为:a text string literal,这是个deep的结构。 char类型的定义为A text field literal,是个常规结构。

我们先分析'' ``的区别,从abap关键字文档查询可知:

Syntax Name Possible Characters
'...' Text field literal String of any alphanumeric characters. The data type is c with the length of the enclosed characters (including trailing blanks). 
`...` Text string literal String of any alphanumeric characters. The data type is string. A text string literal can have a maximum of 255 characters. 

 由上可知,' '的本意为创建一个c类型,所以我们常用的string = ' '.其实都是不规范的,这是创建了一个C类型强行赋值给了string,正规的写法应该是string = ``.

当然了,我们对abap程序的要求向来都是能用就行...

接下来是||,测试可知,||用来创建也是不会错的,那||是个什么东西呢?

最初我只是用||来拼接字符串(很好用),用来替代&,从未考虑过深层次的东西。

这回我认真查了一发。看到了这么一句话:new syntax form of string template |{}|

从string template我们可知,这东西的目的就是构造一个string

The purpose of a string template is to create a new character string out of literal texts and embedded expressions.

简单翻译就是,这玩意就是用文本加内嵌的表达式({变量})创建一个新的string。

综上,我们可以更合理的使用这三个符号,从而让我们的程序变得更加规范和美观。

猜你喜欢

转载自blog.csdn.net/zhongguomao/article/details/107676759
今日推荐