ABAP中types与data,type与like的区别

时间:2022-10-01 16:22:16

1,types与data区别:types是用来自定义某种类型的,需要data实例化才能使用,data是用来声明基本类型数据对象,也就是实例变量,对于用data直接定义的结构体对象(不参照其它结构类型)

参照自定义类型生成新数据语法格式:

TYPES|DATA …… TYPE type type1 ……  “type1代表程序内部类型

参照程序中已经声明的数据对象生成新数据语法格式:

TYPES|DATA …… LIKE DOBJ ……  “DOBJ代表数据对象

 

2,type与like区别:

type后面跟随的只能是某种类型

like后面可以跟实例对象

 

参照结构体对象生成内表时只能用like,不能用type,因为结构体对象不是类型,只是一中实例对象

参照结构类型生成内表时可以用like也可以用type

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


简述:types就是一个类型,一个框架。data则是对这个types的东西进行了初始化,即分配内存和初始值


3,type和data声明的区别:

      type声明一个类型
      data声明一个变量
      type定义的类型不能直接使用,必须通过data来定义变量后才能使用;
      data定义的变量可以直接使用,并且可以在其他data声明时来like,表示声明相同数据类型的变量。
      例如:data a type c,
      data b like a.( 等价于 data b type c)

 

变量声明按类型定义:DATE <变量名>(<长度>) TYPE <数据类型> VALUE <默认值>按参考定义:DATE <变量1> LIKE <变量2>