在ABAP中调用方法时,更改关键字的意义是什么?

在ABAP中调用方法时,更改关键字的意义是什么?,abap,Abap,我理解导入和导出关键字的作用,但是更改关键字的意义是什么?导入将实际参数作为形式参数传递,从而将值从调用方传递到方法导出的作用正好相反,从方法中获取一个值并将其传输回调用方CHANGING将这两种方法结合起来,将值从调用方传输到方法,然后再返回,其间发生的任何更改 请注意,导入和导出在声明和调用之间是相反的,而更改则不是。此外,当使用表单和ENDFORM声明子例程时,更改关键字可以像更改myvar或更改值(myvar)一样使用 更改myvar使其在子例程中更改后,立即更改myvar的值 相反,如

我理解
导入
导出
关键字的作用,但是
更改
关键字的意义是什么?

导入
将实际参数作为形式参数传递,从而将值从调用方传递到方法<代码>导出的作用正好相反,从方法中获取一个值并将其传输回调用方
CHANGING
将这两种方法结合起来,将值从调用方传输到方法,然后再返回,其间发生的任何更改


请注意,
导入
导出
在声明和调用之间是相反的,而
更改
则不是。

此外,当使用
表单
ENDFORM
声明子例程时,
更改
关键字可以像
更改myvar
更改值(myvar)一样使用

更改myvar
使其在子例程中更改后,立即更改
myvar
的值


相反,如果使用了
CHANGING VALUE(myvar)
,如果表单没有正确返回(如果它通过示例抛出异常),则调用代码中
myvar
的值将保持不变,即使它在崩溃的子例程中被更改。

如此有效,
CHANGING
ABAP等同于引用调用吗?@amalantony:No。在许多其他编程语言中,“In/out/inout”参数和“callbyvalue/reference”的概念是链接的,而不是在ABAP中。您可以决定是传递值还是传递引用,而无需指定内容的方向。