我为什么要在Fortran中使用"use,only"

Ste*_*ein 2 fortran

在python中这样的声明:

from module import function354
Run Code Online (Sandbox Code Playgroud)

有道理,因为Python是一种解释器语言,我不希望python加载所有353个其他函数.

Fortran有一个类似的结构:

use module, only : function354
Run Code Online (Sandbox Code Playgroud)

我为什么要用这个?编译器无论如何都会创建一个*.mod文件,编译所有函数.如果我指定only-statement,是否有任何性能优势(在编译或运行时)?

我可以看到避免命名冲突可能会有所帮助,但除此之外,我并没有真正看到这一点.

Ian*_*ush 8

两个主要原因

  1. 为避免名称冲突,正如您所提到但似乎认为不重要.在一个庞大而复杂的代码中,任何有助于维护的东西都是一个奖励,所以这use, only是一个很有用的补充
  2. 它会自动记录实体的来源.考虑到第一次读取大而复杂的代码,我几乎可以保证你会花时间计算出来自哪个模块的内容,因此这use, only是一个很好的功能来帮助代码可读性

您不仅需要快速代码 - 重要的是可维护性,更重要的是正确性!

  • 那不是我说的话.但也许,也许不是. (2认同)