点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我喜欢在日常编码中使用ABAP功...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我喜欢在日常编码中使用ABAP功...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
我喜欢在日常编码中使用ABAP功能运算符,但有时我质疑此类编码块的可读性(简洁性)。
我目前所拥有的:
R_RESULT = cond#( 当I_PARAM初始时 和UTILITY-> FOO()<> IF_ENUM => CONSTANT-UNDEFINED 然后抛出CX_ERROR(消息E004(MSG_CLS)) 当I_PARAM不是初始的 然后cond#(当I_SOME_FLAG = ABAP_TRUE 然后抛出CX_ERROR(消息E006(MSG_CLS)与I_PARAM) 其他ABAP_TRUE))。
我可以使用IF以旧的详细方式重写代码:
如果I_PARAM是初始的 和UTILITY-> FOO()<> IF_ENUM => CONSTANT-UNDEFINED。 引发异常类型CX_ERROR消息E004(MSG_CLS)。 else I_PARAM不是初始的。 如果I_SOME_FLAG = ABAP_TRUE。 使用I_PARAM引发异常类型CX_ERROR消息E006(MSG_CLS)。 其他。 R_RESULT = ABAP_TRUE。 万一。 endif。
IMO,第一个代码段是" cleaner",因为乍一看,我可以看到该COND功能块仅向我返回R_RESULT。 在第二个片段中,情况并非如此。
我想听听您对此的看法。
BR,
苏哈斯
很高兴看到这样的问题至少偶尔出现一次 。 :)
只有我的0.02美元。 我认为在这种情况下,我们处在样式范围内,而不是对或错,而是个人偏好而不是其他任何事情。
有了免责声明,在这种情况下,我更喜欢IF ...版本,因为我 可以更轻松地跟随它。 这不是因为我是不喜欢COND的ABAPosaur,而是因为正如其他人所述,在这里例外与值分配混在一起。 如果不是这种情况,那么COND选项可能会更好。
作为旁注,无论哪种情况,它都会使我感到困惑,如果i_param是INITIAL,但是第二个AND UTILITY ...条件不是 完整的IF语句将被跳过。 仅仅通过查看代码,我就无法判断它是故意的还是疏忽大意。 同样,我通常也不喜欢许多嵌套的IF,但是在这种特殊情况下,我感觉像是将第一个IF ... AND ...分解为单独的语句,这将允许将ELSEIF ...更改为简单的ELSE。 这样可以减少冗长,并且从调试的角度来看更方便。 正如Sandra正确指出的那样,对于自动化测试而言,这不是问题。
一周热门 更多>