宣告功能
考慮該計劃
implicit none
integer f, i
f(i)=i
print *, f(1)
end
這裡 f
是一個宣告函式。它具有整數結果型別,採用一個整數偽引數。 1
這樣的語句函式存在於定義它的範圍內。特別是,它可以訪問該範圍內可訪問的變數和命名常量。
但是,語句函式受到許多限制並且可能令人困惑(看起來像陣列元素賦值語句一樣偶然。) 重要的限制是:
- 函式結果和偽引數必須是標量
- 偽引數與函式在同一範圍內
- 語句函式沒有區域性變數
- 語句函式不能作為實際引數傳遞
語句功能的主要優點由內部函式重複
implicit none
print *, f(1)
contains
integer function f(i)
integer i
f = i
end function
end
內部函式不受上述限制的約束,儘管值得注意的是內部子程式可能不包含其他內部子程式(但它可能包含語句功能)。
內部函式有自己的範圍,但也有可用的主機關聯。
1 在真正的舊程式碼示例中,即使結果具有顯式型別,也會發現隱式型別化語句函式的偽引數並不罕見。