首先,我想说的答案不是关于optional或类似的东西present.
我想定义一个看起来像的函数write(*,*) ....如我们所见,输入变体的数量可以是任意的.如果我们使用optional关键字,我们需要定义所有可能的输入.假设我们有1000个(可能的)输入,我们可以做什么?
你不能用简单的子程序或Fortran参数做任何事情.这根本不可能.您只能使用函数中定义的参数.
如果所有输入的类型相同,则必须将所有内容放入数组中,否则您将不得不创建一些更复杂的派生类型 - 可能是多态链接列表或类似内容.
请注意,您要求的内容确实存在于某些语言中(例如,C可变参数函数),但它在Fortran中不存在.