abap 连等

版权声明:如有转载请注明 by Huang.Lin https://blog.csdn.net/huanglin6/article/details/81391688

     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。

猜你喜欢

转载自blog.csdn.net/huanglin6/article/details/81391688
今日推荐