ABAP 之 赋值方式对比

举报
百里丶落云 发表于 2023/01/09 16:41:35 2023/01/09
【摘要】 序HELLO,这里是百里,一个学习中的ABAPER,在工作中我们会经常使用赋值来实现工作区写入到内表中,从而实现数据的填充,在HANA中新增了一种新的数据赋值的方式,他很像C语言当中的那种函数赋值方式,总体来说,更美观,更灵活. 那么今天我们就讲一下,在ABAP中的赋值方式. 什么是赋值以及为什么会有这么多种赋值方式什么是赋值,在任何语言中都有说赋值的要求,但是在不同语言的赋值方式也大同小...

HELLO,这里是百里,一个学习中的ABAPER,在工作中我们会经常使用赋值来实现工作区写入到内表中,从而实现数据的填充,在HANA中新增了一种新的数据赋值的方式,他很像C语言当中的那种函数赋值方式,总体来说,更美观,更灵活. 那么今天我们就讲一下,在ABAP中的赋值方式.

什么是赋值以及为什么会有这么多种赋值方式

什么是赋值,在任何语言中都有说赋值的要求,但是在不同语言的赋值方式也大同小异.比如PYTHON 就没有强制要求赋值的数据类型,但是在ABAP中如果要赋值就必须先定义接受数据的数据类型. 即先定义,后赋值.

至于为什么要有这么多种数据赋值的方式,这是因为,SAP经过了这么多版本.到现在已经是HANA版本了,自然有很多中数据版本了.他们实现的功能是一致的但是表现方式不同罢了.

技术解析

给工作区赋值

"等号赋值
DATA : 变量1 type 参考元素. 
变量1 = 数据1 . 
move 数据1 to 变量1 . 
write 数据1 to 变量1  .
VALUE dtype|#( comp1 = a1 comp2 = a2 … )

给内表赋值

"等号赋值

"move to 赋值

" 新语法赋值 暂时不会等看

实例

数据准备

TYPES : BEGIN OF ty_DAta ,  
          name TYPE char20,  
          age  TYPE  i,  
          num1 TYPE n,  
  
        END OF ty_DAta .  
  
DATA :  tname1 TYPE char20 .  
DATA :  tname2 TYPE char20 .  
DATA :  tname3 TYPE char20 .  
  
DATA:  gs_Data TYPE ty_DAta .  
DATA : gt_Data TYPE TABLE OF ty_DAta .  
DATA : gt_Data1 TYPE TABLE OF ty_DAta .  
DATA : gt_Data2 TYPE TABLE OF ty_DAta .

操作工作区

"给工作区赋值  
"等号  
tname1 = '测试名字1'.  
tname2 = '测试名字2'.  
" move  to  
MOVE tname1 TO gs_Data-name .  
" write to  
WRITE tname2 TO gs_Data-name .  
  
"等号赋值  
  
tname3 = gs_Data-name .  
  
" 不需要建立工作区赋值  
DATA(gs_data4) =  gs_Data .  
  
  
"" 新语法赋值  
DATA(gs_Data3) = VALUE ty_DAta( name = '语法名字1'  
                           age = 20  
                           num1 = 33 ).

操作内表

" 内表赋值  
"传统赋值方式  
gs_Data-name =  '内表名字1' .  
gs_Data-age = 11 .  
gs_Data-num1 = 102 .  
APPEND gs_Data TO gt_Data .  
  
gs_Data-name =  '内表名字2' .  
gs_Data-age = 22 .  
gs_Data-num1 = 222 .  
APPEND gs_Data TO gt_Data .  
  
""move to 赋值  
  
MOVE gt_Data TO gt_Data1 .  
  
" 等于赋值  
gt_Data2 = gt_Data .  
  
  
" 不需要建立内表赋值  
  
DATA(gt_Data4) =  gt_Data .

"新语法待学习

结果

今天讲的是ABAP开发中常用的基础技术内容,赋值的详细用法.其中包含自定义数据类型,结构内表,和不使用数据类型和内表的方式. 并且讲解了新语法的使用方式.

百里鸡汤

眼前直下三千字,胸次全无一点尘。

这里是百里,一个努力的学习者. 努力学习好好记录,点滴进步,就是成功.

wallhaven-9d611k.jpg

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。