сохранить результат функции в глобальной среде - PullRequest
0 голосов
/ 16 апреля 2020

Просто общий вопрос ... я создаю функцию, которая читает файл и сохраняет результат в предопределенном имени внутри функции. Затем функция сохраняет результат с функцией assign() в глобальной среде с предварительно определенным именем. Конечно, я мог бы сделать это через выполнение функции и сохранить результат в самоназванной переменной (без использования assign(). Это прекрасно работает для меня, но я пришел к сообщению в stackoverflow (не могу найти его больше), где кто-то дает совет никогда, никогда не делай этого. Может кто-нибудь сказать мне, почему?

1 Ответ

0 голосов
/ 16 апреля 2020

Поскольку это идет вразрез с принципами хорошего функционального программирования.

Вся причина использования функций вместо простого использования одноразовых сценариев состоит в том, чтобы избежать повторений и сделать код более эффективным.

Жестко запрограммировав присвоение результата в функцию, вы фактически забрали все преимущества функции, добавив сложность написания функции.

Если необходимо использовать функцию несколько раз, Также необходимо поменять название результата! Если вы просто сохраняете промежуточный результат, то а) нет необходимости делать это в глобальном env и б) вы объединяете функции в цепочки вместо того, чтобы писать одну соответствующую функцию (которая может включать в себя другие функции, чтобы быть уверенным, модульность является ключевой здесь ).

...