ABAP数据定义之DATA和TYPES
在ABAP程序开发中往往需要定义许多数据结构和数据类型。这就会用到DATA和TYPES关键字的使用,可很多初学者在学习之初会发现有时混用也是可以的。可究竟两者有什么区别呢?在下也是ABAP开发的新人,只能说是谈下个人的理解。(仅供个人参考,如有不对之处还请不吝指教)
DATA从名字就可以看出其本质:用于定义数据的,可刚定义的数据是没有初值的。这时我们称之为数据结构,就像其他语言里的结构体一样,这种数据只需要往里填值就可以,不需要进行实例化(也就是不能直接当做数据类型一样使用,像I、P、C等)。
TYPES顾名思义:用于定义type(类型)的,这种类型可以有一个或多个基础类型或结构来组成。它可以被实例化但是却不能直接接受外部赋值,这点和预定义的数据类型相同。
多说无益,下面用几个例子对比一下帮助理解:
[EXAMPLE]
DATA: BEGIN OF d,
stu_id(9) TYPE c,
stu_name(8) TYPE c,
stu_class(7) TYPE c,
END OF d.
d-stu_id = '0908103101'.
d-stu_name = '司马相如'.
d-stu_class = '信管092'.
WRITE:/ '学号:',d-stu_id.
WRITE:/ '姓名:',d-stu_name.
WRITE:/ '班级:',d-stu_class.
----------------------------------
结果:
-------------
学号:0908103101
姓名:司马相如
班级:信管092
----------------------------------
TYPES: BEGIN OF data_type,
stu_id(9) TYPE c,
stu_name(8) TYPE c,
stu_class(7) TYPE c,
END OF data_type.
DATA d1 TYPE data_type.
d1-stu_id = '0908103101'.
d1-stu_name = '司马相如'.
d1-stu_class = '信管092'.
WRITE:/ '学号:',d1-stu_id.
WRITE:/ '姓名:',d1-stu_name.
WRITE:/ '班级:',d1-stu_class.
----------------------------------
结果同上。
----------------------------------
浙公网安备 33010602011771号