2016-05-09 15 views
2

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) 
+0

Es können mehrere Werte zurückgeben (siehe unten), aber Sie können nicht mehrere Aufgaben in einem einzigen haben Linie wie in Python. –

Antwort

3

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 
+0

Danke, Alexander. Ihre Antwort ist genau das, wonach ich gesucht habe! –

+0

@francescalus Danke, dass Sie mich darüber informiert haben! –

Verwandte Themen