在Fortran?中强制值类型语义/不变性



查看我们的代码库,我看到许多情况下,派生类型的字段使您希望它们在初始化后保持不变,理想情况下是一次初始化,之后再也不会更改(如"值类型"(。

在实践中,已经建立了快速解决方案,因此字段是否更改,甚至其包含的内容可能取决于代码路径,导致到处都是大型IF-ELSE级联,使代码难以遵循,并且在更改时变得脆弱。

这让我想知道:是否有可能强制执行诸如字段不变性之类的约束?

您可以使用"parameter"关键字使变量成为常量。

https://www.tutorialspoint.com/fortran/fortran_constants.htm

real, parameter :: g = 9.81

你必须在编译时知道这些值,所以这可能不是你想要的。如果不是,你能给我们一些澄清吗?我们可以尽力帮助你?

************编辑******************

正如上面其他人所说,如果您需要能够在运行时设置变量,那么getter和setter就是最好的选择。

您可以将变量设为私有变量,并为其编写getter和setter,或者如果您将该变量设为受保护变量,则只需要为其编写setter

最新更新