returns 多个值的函数
Function which returns multiple values
在 Fortran 中,是否可以定义一个 returns 多个值的函数,如下所示?
[a, b] = myfunc(x, y)
这取决于...使用 functions
,不可能有两个不同的函数结果。但是,您可以从函数中得到一个长度为 return 的数组。
function myfunc(x, y)
implicit none
integer, intent(in) :: x,y
integer :: myfunc(2)
myfunc = [ 2*x, 3*y ]
end function
如果您需要两个 return 值到两个不同的变量,请改用 subroutine
:
subroutine myfunc(x, y, a, b)
implicit none
integer, intent(in) :: x,y
integer, intent(out):: a,b
a = 2*x
b = 3*y
end subroutine
一种可能的方法是,如果你真的想要一个单一的输出变量,那么你可以将所有相同数据类型的输出组合在一个数组中,然后return它,虽然这并不比上面讨论的方法。
在 Fortran 中,是否可以定义一个 returns 多个值的函数,如下所示?
[a, b] = myfunc(x, y)
这取决于...使用 functions
,不可能有两个不同的函数结果。但是,您可以从函数中得到一个长度为 return 的数组。
function myfunc(x, y)
implicit none
integer, intent(in) :: x,y
integer :: myfunc(2)
myfunc = [ 2*x, 3*y ]
end function
如果您需要两个 return 值到两个不同的变量,请改用 subroutine
:
subroutine myfunc(x, y, a, b)
implicit none
integer, intent(in) :: x,y
integer, intent(out):: a,b
a = 2*x
b = 3*y
end subroutine
一种可能的方法是,如果你真的想要一个单一的输出变量,那么你可以将所有相同数据类型的输出组合在一个数组中,然后return它,虽然这并不比上面讨论的方法。