zoukankan      html  css  js  c++  java
  • ABAP中TYPES与DATA、TYPE与LIKE 区别

    1.TYPES与DATA区别:
      TYPES是用来自定义某种类(型)的,需(用DATA语句)实例化以后才可以使用
      DATA 是用来声明基本类型数据对象(实例变量)的,对于用DATA直接定义的结构体对象(不参照其它结构类型)

    参照自定义类型生成新数据语法格式如下:
    TYPES | DATA  ...... TYPE type1 .......        ''type1 代表程序内部类型

    参照程序中已经声明的数据对象生成新数据语法格式如下:
    TYPES | DATA ...... LIKE dobj ......             ''dobj代表数据对象

    2.TYPE与LIKE区别:
      TYPE后面跟随的只能是某种类(型)
      LIKE后面可以跟实例对象
            
    参照结构体对象生成内表时只能用LIKE,不能用TYPE,因为结构体对象不是类型,只是一种实例对象
    参照结构类型生成内表时可以用LIKE也可以用TYPE
     
    其中通过LIKE定义的内表直接拥有参照结构类型的元素结构,

    而通过TYPE定义的内表只能间接拥有被参照结构类型的元素结构,结构类型不能作为内表的工作区,只有结构体对象才可以.

    注:

    1.TYPES与DATA区别:TYPES是用来定义某种类(型)的,需(用DATA语句)实例化以后才可以使用,而DATA是用来定义数据对象(实例变量)的,对于用DATA直接定义的结构体对象(不参照其它结构类型),其同时也是一个结构类型.

    2.TYPE与LIKE区别:TYPE后面跟随的只能是某种类(型),而LIKE后面可以跟随类型或实例对象,参照结构体对象生成内表时只能用LIKE,不能用TYPE,因为结构体对象不是类型,只是一种实例对象,参照结构类型生成内表时可以用LIKE也可以用TYPE.其中通过LIKE定义的内表直接拥有参照结构类型的元素结构,而通过TYPE定义的内表只能间接拥有被参照结构类型的元素结构,结构类型不能作为内表的工作区,只有结构体对象才可以.

    简单理解,types就是一个类型,一个框架。data则是对这个types的东西进行了初始化,即分配内存和初始值。感觉有点像OO中的class 和 实例。

    http://hi.baidu.com/gbgrwyckmnbehld/item/4b6e3e1c290e7f0ce65c363d

  • 相关阅读:
    bzoj2733: [HNOI2012]永无乡
    bzoj3141: [Hnoi2013]旅行
    bzoj3144: [Hnoi2013]切糕
    bzoj3140: [Hnoi2013]消毒
    bzoj3139: [Hnoi2013]比赛
    bzoj3142: [Hnoi2013]数列
    bzoj3572: [Hnoi2014]世界树
    bzoj2286: [Sdoi2011]消耗战
    bzoj3611: [Heoi2014]大工程
    The Unsolvable Problem
  • 原文地址:https://www.cnblogs.com/xinzjing/p/4688535.html
Copyright © 2011-2022 走看看