abap 连等

本文通过示例展示了ABAP中使用连等式时可能遇到的问题。特别是当变量类型不一致时,连等操作可能导致意外的结果。文章通过具体代码演示了这种行为,并解释了背后的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     ABAP内也是支持连等式的比如 L_STR1 = L_STR2 = 1.但是使用这个语句的是要特别注意,如果 L_STR1 、L_STR2的类型不一样可能会被坑。比如L_STR1是STRING类型的,L_STR2是NUMC类型的,其实我们的想法是执行这条语句后,L_STR1 =等于1,L_STR2 也等于 1。但是执行完后你会发现根本不是你想要的结果

测试代码

*&---------------------------------------------------------------------*
*& Report  ZDEMO1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZDEMO1.
data:l_str1 TYPE string,
     l_str2 TYPE BDL_INST.
l_str1 = l_str2 = 1.
WRITE : / l_str1 ,l_str2.

l_str2 = l_str1 = 1.
WRITE : / l_str1 ,l_str2.

结果:

program for demo

0000000001 0000000001
1  0000000001

竟然2次的结果不一样,其实是酱紫的,连等的话和其他语言一样,L_STR1 = L_STR2 = 1.相当于先执行L_STR2 = 1然后因为L_STR2是numc类型的,所以自动补齐前导0,就变成了0000000001,而再执行L_STR1 = L_STR2后因为是L_STR1STRING,所以L_STR1也变成了0000000001。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

huang.lin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值