在他的书中Effective C++ Scott Meyers提出了一个有趣的指导方针,
第26项:尽可能推迟变量定义.它提高了程序清晰度并提高了程序效率.
他提出的支持上述论点的论点是,无论何时创建或破坏变量,我们都会为变量的构造和破坏承担一些成本.
我们可能有多个控制流,其中我们可以从函数返回而不使用早期定义的变量(在函数的开头),因此可能不必要地产生未使用变量的创建成本.
这一切似乎都是合乎逻辑的,而且确实是一种很好的做法.来自c背景我倾向于在功能块的开头声明我的所有变量.也许它仅仅是c背景,但我也觉得在函数中的一个地方的所有声明都提供了简单和更好的可读性.
所以问题是你们当中有多少人在日常节目中真正遵循这样的做法,或者试图遵循这样的做法仅仅是一种过度杀伤力.
Scott Meyers的建议(像往常一样)非常好,你应该遵循它.我现在已经这样做了二十年了,我不喜欢Java采取C方式这样做的事实.
我当然这样做.它确实需要一些适应新习惯(来自其他语言我自己知道你的意思),但一旦你在那里,它会更方便.除了你提到的内容之外,我还看到了两个好处:
提高可读性:您需要更少的"缓存"来记住功能范围中使用的变量.每个小的代码和平都定义了自己的变量.
初始化:一个非常重要的原则是应尽可能定义变量的初始化.在函数开头并不总是可以知道初始化值
| 归档时间: |
|
| 查看次数: |
623 次 |
| 最近记录: |