In Fortran, ist es möglich, eine Funktion zu definieren, die mehrere Werte wie folgt zurückgibt?Funktion, die mehrere Werte zurückgibt
[a, b] = myfunc(x, y)
In Fortran, ist es möglich, eine Funktion zu definieren, die mehrere Werte wie folgt zurückgibt?Funktion, die mehrere Werte zurückgibt
[a, b] = myfunc(x, y)
Das hängt davon ab ... Mit functions
, ist es nicht möglich, zwei verschiedene Funktionsergebnisse zu haben. Sie können jedoch ein Array der Länge 2 von der Funktion erhalten.
function myfunc(x, y)
implicit none
integer, intent(in) :: x,y
integer :: myfunc(2)
myfunc = [ 2*x, 3*y ]
end function
Wenn Sie zwei Rückgabewerte an zwei verschiedenen Variablen benötigen, ein verwenden subroutine
statt:
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
Danke, Alexander. Ihre Antwort ist genau das, wonach ich gesucht habe! –
@francescalus Danke, dass Sie mich darüber informiert haben! –
Es können mehrere Werte zurückgeben (siehe unten), aber Sie können nicht mehrere Aufgaben in einem einzigen haben Linie wie in Python. –