分享

ABAP 方法调用的参数传递里,通过引用传递的方式,能修改原始参数值吗?

 汪子熙 2023-02-24 发布于上海

本教程前一篇文章,我们已经介绍了 ABAP 方法调用里,参数传递 Pass Value 这个 checkbox 勾上与否的行为差异。简单复习一下,勾上 Pass Value 说明开发人员期望调用函数时传递参数值采取值拷贝的方式进行;如果不勾上,将输入参数的引用传递到函数内定义的形式参数。

我们指定参数时,系统开发工具的默认行为是不勾上 Pass Value.

教程末尾我们提出了一个问题:

比如我调用一个函数计算 3+2 的和,能否在函数体内,当加法计算完毕后,把传递进来的第一个参数,从 3 改成其他值呢?

答案是看具体情况而定。

本文我们就来详细探讨这个问题。

总结

本文介绍的关键点:

(1) ABAP 方法传递默认采用 Pass by Reference 即引用传递。

(2) 对于 ABAP 类的方法调用和 ABAP Function Module 调用,输入参数即使采用引用传递,也无法在方法和函数实现体内对输入参数的值进行修改。

(3) ABAP subroutine 通过 USING 关键字指定的参数,也是通过引用传递传值,但是可以在 subroutine 实现体内被修改。如果想避免这种情况发生,可以采用 VALUE 关键字来修饰该参数。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多