gpt4 book ai didi

java - 如何定义返回参数?

转载 作者:搜寻专家 更新时间:2023-11-01 02:29:49 24 4
gpt4 key购买 nike

我习惯了JAVA,因此用ABAP写这段代码有问题。

我调用了一个有两个参数的方法。它应该返回一个数字,这样我就可以保存它。

我想要的是

int result = generate_num(40,5);

int generate_num(int thisNum, int newDigit){
return thisNum * 10 + newDigit;
}

到目前为止,我在 ABAP 中尝试过这个。

//声明方法

methods GENERATE_NUM
importing
!thisNum type I
!NEWDIGIT type DIGIT_NUMBER_VALUE.

//调用方法

CALL METHOD me->Generate_NUM
EXPORTING
thisNUm = 40
newDigit = 5.

//方法本身

METHOD GENERATE_NUM.


DATA: newNum type i.

If thisnum < 0.
newNum = thisnum * 10 - newdigit.
Else.
newNum = thisnum * 10 + newdigit.
ENDIF.

RETURNING VALUE(newNum).

ENDMETHOD.

但是我迷失在这段代码中,不知道如何返回一个值以及如何将它保存在另一个变量中。

最佳答案

这就是你如何声明一个带有返回参数的方法:

METHODS generate_num 
IMPORTING
thisNum TYPE i
newdigit TYPE digit_number_value
RETURNING
value(result) TYPE i.

请注意,一个方法只能有一个RETURNING参数,并且该参数必须始终按值传递。

在方法实现中,通过修改声明为返回参数的局部变量来设置返回值:

METHOD generate_num.

IF thisnum < 0.
result = thisnum * 10 - newdigit.
ELSE.
result = thisnum * 10 + newdigit.
ENDIF.

ENDMETHOD.

返回值将是方法返回时 result 的任何值。就像使用 EXPORTING 参数一样。

当你调用一个方法时,你可以使用经典的 CALL 语法,它更像是经验丰富的 ABAP 开发人员习惯的语法:

DATA lv_foo TYPE i. " the variable you want to store the return value in

CALL METHOD me->generate_num
EXPORTING
thisNUm = 40
newDigit = 5
RECEIVING
result = lv_foo.

或者更像您可能习惯的 Java 语法的函数式语法:

lv_foo = me->generate_num( thisNUm = 40 newDigit = 5).

如果该方法不仅有导入参数,还有更改或导出参数,则语法如下所示:

lv_foo = me->generate_num( 
EXPORTING thisNUm = 40
newDigit = 5
CHANGING cv_bar = lv_bar ).

关于java - 如何定义返回参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12317604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com