Глобальные константы. Есть проблемы с их использованием? - PullRequest
2 голосов
/ 14 февраля 2020

Я программирую уже более 6 лет, и я всегда избегал использования глобальных переменных, потому что всегда есть другие пути решения проблем.

Сегодня я работаю над (большим) проектом, мы хочу использовать словарь математических констант, который никогда нигде не будет изменен. Единственная проблема, которую я, похоже, нахожу с глобальными переменными на inte rnet, заключается в том, что если кто-то перезаписывает один из них, это может привести к ошибкам всего проекта. Но поскольку мои константы, эта проблема неприменима.

(в качестве второй меры безопасности, чтобы избежать создания людьми переменной с тем же именем, что и у одной из констант, я, вероятно, соберу их всех в одну глобальную структуру)

Кто-нибудь знает о проблемах, которые все еще происходят с использованием глобальных констант?

Спасибо за ваши ответы! :)

Ответы [ 2 ]

3 голосов
/ 14 февраля 2020

В MATLAB лучшим выбором для математических констант является определение класса со свойствами, которые имеют атрибут Constant. Это описано в do c здесь , и вот главный пример с этой страницы:

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

Таким образом, значения не могут быть переопределены. (Обратите внимание, что в этом примере есть что-то немного неожиданное - значение свойства RN меняется каждый раз при загрузке класса! Лично я не стал бы писать такой код ...)

2 голосов
/ 14 февраля 2020

Старомодный стандартный способ создания константы в MATLAB - написать функцию . Например, pi - это функция. Это может быть записано как:

function value = pi
value = 3.14159;
end

Конечно, мы можем перезаписать значение pi в MATLAB, но это всегда локальное изменение, невозможно повлиять на другое рабочее пространство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...