matianl:abap like 和 type的用法区别

2023-10-14 14:01:12 浏览数 (1)

like是引用数据对象 TYPE是引用数据类型

一个最简单的例子

代码语言:javascript复制
TYPES:BEGIN OF ty_alv,
        matnr TYPE mara-matnr,
        maktx TYPE makt-maktx,
      END OF ty_alv.

DATA: alv1 TYPE ty_alv.

DATA: alv2 LIKE alv1.

ty_alv是定义的一个数据类型; 因此alv1可以type,但是不能like,使用like会报错,因为他不能引用数据类型。 但是alv2可以like alv1, 因为alv1已经被实例化为一个对象了,所以可以like

不过我更喜欢用type,因为在开发中,大部分情况下 用like的情况下大部分都可以用type,但是用type的情况下却不一定可以用like。

使用type的情况:

  1. 基本的数据类型,i,n,c,等。
  2. 已经在系统定义好的数据元素,用SE11 查看数据元素
  3. 数据库表里的字段
  4. 你自己在程序里面用TYPES,也就是上面的例子
  5. 自己在程序里面用TYPES定义的结构里面的一个小成员,如 data lv_m type ty_alv-matnr。
  6. 数据库表

0 人点赞