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

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

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


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


87. SAP ABAP 方法调用里传值(Pass Value)和传引用(Pass Reference)的区别


image.png

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


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


答案是看具体情况而定。


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


总结

本文介绍的关键点:


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


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


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



相关文章
|
5月前
|
存储 C语言
C 语言函数完全指南:创建、调用、参数传递、返回值解析
函数是一段代码块,只有在被调用时才会运行。 您可以将数据(称为参数)传递给函数。 函数用于执行某些操作,它们对于重用代码很重要:定义一次代码,并多次使用。
144 3
|
Serverless 开发工具
ABAP 方法调用的参数传递里,通过引用传递的方式,能修改原始参数值吗?
ABAP 方法调用的参数传递里,通过引用传递的方式,能修改原始参数值吗?
ABAP 方法调用的参数传递里,通过引用传递的方式,能修改原始参数值吗?
|
JSON 前端开发 数据格式
四种常见的参数传递方式
四种参数传递方式
185 0
|
5月前
|
Java C# 开发者
Python 中的类型注解是一种用于描述变量、函数参数和返回值预期类型的机制
【5月更文挑战第8天】Python的类型注解提升代码可读性和可维护性,虽非强制,但利于静态类型检查(如Mypy)。包括:变量注解、函数参数和返回值注解,使用内置或`typing`模块的复杂类型,自定义类型注解,以及泛型模拟。类型注解可在变量声明、函数定义和注释中使用,帮助避免类型错误,提高开发效率。
52 6
|
5月前
|
存储 C#
C# 方法详解:定义、调用、参数、默认值、返回值、命名参数、方法重载全解析
方法是一段代码,只有在调用时才会运行。 您可以将数据(称为参数)传递给方法。 方法用于执行某些操作,也被称为函数。 为什么使用方法?为了重用代码:定义一次代码,然后多次使用。
67 0
|
Dart 前端开发 JavaScript
dart中将方法当做参数传递时的注意事项
众所周知,Dart是一门面向对象的语言,比Java更纯粹,Dart中的方法也是对象,也有类型Function。这意味着方法可以被分配给对象,也可以当做参数传递给其他方法。
|
编译器 C++
C++函数参数传递的三种方式
C++函数参数传递的三种方式
188 0
|
Java
java面试题:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
答:是值传递。Java编程语言只有值传递参数。 当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。
12456 0
|
C++ 编译器 安全