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

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

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

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

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

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

答案是看具体情况而定。

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

总结

本文介绍的关键点:

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

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

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

你可能感兴趣的:(ABAP 方法调用的参数传递里,通过引用传递的方式,能修改原始参数值吗?)