2016-05-09 3 views
2

В Фортране, можно ли определить функцию, которая возвращает несколько значений, как показано ниже?Функция, которая возвращает несколько значений

[a, b] = myfunc(x, y) 
+0

Он может вернуть несколько значений (см ниже), но вы не можете иметь несколько назначений в одном как в Python. –

ответ

3

Это зависит ... С functions, это не возможно иметь два различных результатов функции. Тем не менее, вы можете иметь массив длины, возвращаемый функцией.

function myfunc(x, y) 
    implicit none 
    integer, intent(in) :: x,y 
    integer    :: myfunc(2) 

    myfunc = [ 2*x, 3*y ] 
    end function 

Если вам нужны два значения возврата в двух различных переменных, использовать вместо 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 
+0

Спасибо, Александр. Ваш ответ - именно то, что я искал! –

+0

@francescalus Спасибо, что сообщили мне об этом! –

Смежные вопросы