【发布时间】:2011-07-28 10:24:10
【问题描述】:
在最近与同学的对话中,我一直主张避免使用全局变量,除非是存储常量。这是一种典型的应用统计类程序,每个人都编写自己的代码,项目规模偏小,所以人们很难看到马虎的习惯带来的麻烦。
在谈论避免使用全局变量时,我主要关注以下全局变量可能会造成麻烦的原因,但我想在 R 和/或 Stata 中提供一些示例 遵循原则(以及您可能认为重要的任何其他原则),但我很难提出可信的原则。
- 非局部性:全局变量使调试更难,因为它们更难理解代码流
- 隐式耦合:全局变量通过允许远距离代码段之间的复杂交互打破了函数式编程的简单性
- 命名空间冲突:公共名称(x、i 等)被重复使用,导致命名空间冲突
对这个问题的一个有用答案是一个可重现且自包含的代码 sn-p,其中全局变量会导致特定类型的问题,理想情况下是使用另一个代码 sn-p 来纠正问题。如有必要,我可以生成更正的解决方案,因此问题的示例更为重要。
相关链接:
【问题讨论】:
标签: r scope global-variables stata