2014-09-03 73 views
0

我想知道我是否必須爲Fortran 90中的函數提供參數?我能否擁有一個不帶參數的函數,例如Java中的函數例如,get()Fortran 90函數沒有參數?

+0

這裏有*兩個*問題,我不確定真正的問題是什麼。第一個是「必須指定一個函數的所有參數?」第二個是「我可以定義一個不接受參數的函數嗎?」 (Java沒有「可選」參數,使用可變參數的技巧或一邊重載。) – user2864740 2014-09-03 23:41:38

+3

函數可能沒有參數。它也可能有可選參數。有關示例,請參閱http://stackoverflow.com/questions/3121954/fortran-90-presence-of-optional-arguments。 – 2014-09-04 00:13:53

+0

@ M.S.B。謝謝,這回答了我的問題。 – Flanker 2014-09-04 01:17:00

回答

2

是的,這是可能的。沒有參數的函數只是簡單地聲明而沒有參數,例如

integer function get_a_number() 
    implicit none 
    get_a_number = 42 
end function get_a_number 

它沒有參數和簡單地返回默認整數種的值42。

你也可以有可選的參數,例如

function hello_string(name) 
    implicit none 
    character(len=150) :: hello_string 
    character(len=*), optional :: name 

    if (present(name)) then 
    hello_string = "Hello "//trim(name)//"!" 
    else 
    hello_String = "Hello!" 
    end if 
end function 

該函數將返回「Hello!」如果沒有參數調用,並且「你好名稱!」如果提供了一個參數。該函數可以帶1或0個參數。請注意,這種功能需要一個明確的界面才能正常工作。