全局常量.使用它们有问题吗?



我已经编程了6年多了,我一直避免使用全局变量,因为总有另一种解决问题的方法。

今天,我从事一个(大(项目,我们想使用数学常数的字典,这些常数永远不会在任何地方修改。我似乎在互联网上发现全局变量的唯一问题是,如果有人覆盖了一个,它可能会破坏整个项目。但是由于我的是常数,因此此问题不适用。

(作为避免人们创建与其中一个常量同名的变量的第二个安全性,我可能会将它们全部打包在一个全局结构中(

有谁知道使用全局常量仍然发生的问题?

感谢您的回答! :)

在 MATLAB 中,数学常量的最佳选择是定义一个具有Constant属性属性的类。此处的文档对此进行了描述,以下是该页面的主要示例:

classdef NamedConst
properties (Constant)
R = pi/180
D = 1/NamedConst.R
AccCode = '0145968740001110202NPQ'
RN = rand(5)
end
end

这样,就无法覆盖这些值。(请注意,此示例中可能有一些意外 - 每次加载类时,属性的值RN更改!我个人不会写这样的代码...

在 MATLAB 中创建常量的老式标准方法是编写函数。例如,pi是一个函数。它可以写成:

function value = pi
value = 3.14159;
end

当然我们可以在 MATLAB 中覆盖pi的值,但这始终是局部更改,不可能影响另一个工作区。

最新更新