zoukankan      html  css  js  c++  java
  • 【语法探索】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。

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

  • 相关阅读:
    javase 超市库存系统
    Javase 简单代码练习
    Javase 简单练习
    SQL表连接查询
    SQL多表查询
    SQL表查询
    SQL数据查询2
    SQL数据查询
    SQL增删改
    AutoCompleteTextView的使用
  • 原文地址:https://www.cnblogs.com/yibing-jia/p/11640422.html
Copyright © 2011-2022 走看看