声明局部变量尽可能晚地或者在它们所属的最近的大括号? [关闭](Declare local va

2019-06-23 17:25发布

我的工作设置一些编程实践为我的组织标准。 这方面,我遇到了问题,“这个问题的标题”

有的觉得,最好声明变量尽可能晚一些发现它的好让他们在方法的顶部开始支柱。

甲骨文标准也说要尽早申报。 那么,我赞成在他们所属的最接近的大括号宣布他们。

担忧

  1. 代码的可读性

  2. 性能

  3. 不容易出错

任何意见都欢迎。

Answer 1:

这就是麦康奈尔说,在他必读的书代码完成2:

理想情况下,声明和定义每个变量接近它使用的地方。 一个声明建立了一个变量的类型。 的定义分配变量的特定值。 在支持它的语言,如C ++和Java,变量应声明和定义接近的地方,他们第一次使用。

他还建议保留变量活着尽可能短的时间尽可能,并尽量减少范围。

对我来说,重要的是下面的命名约定(Sun的Java代码规范被广泛使用)。 至于他们在哪里首先声明,我耽误报关尽可能性能方面的原因(声明你可能不会使用VAR是种浪费)。 除非你事先知道它要使用肯定的,在这种情况下,你可以与其他增值经销商,以提高可读性组吧。 我认为这是什么JCC说一下吧 。



Answer 2:

代码代码的可读性,我觉得在声明块最好的选择开始的变量。
当通代码去你再总是知道到哪里寻找报关,而不必行代码之间的样子。 这也是更好地寻找一个方法,首先看到声明的变量,然后将代码时。 我认为它像你列出一个烹饪书所需要的成分与配方指令分离的配方。

至于性能方面我没有看到这将如何做出任何区别。 虽然声明下旬可能只需要在您将使用相同的内存量,如果你在一个块的开始宣布你将有一个块结束时创建变量保存的内存升技。

容易出错我想说的是同样的原因可读性。

声明中所需的最小范围,并在块的开头声明。



Answer 3:

我认为,“代码的可读性”是这里唯一重要的一点。 和代码肯定是更具可读性,如果变量的声明更接近使用它们的地方。

但是,有时,为了防止新的编程语言之间转换的“错误”,编码方法的一个特定的风格也可以采用。 例如,JavaScript有官能作用域和Java具有块作用域。 Java程序员可以在JavaScript中,如果她是不知道JavaScript的功能范围界定遇到的问题。 因此,在JavaScript的情况下,为了避免潜在的错误,它只是建议在函数/方法的开头申报一切。

就像我上面提到的,“服务表现”不应该是一个问题。 但是,如果你选择更接近他们所使用的地方声明变量,它可以帮助减少变量声明和初始化成本。



Answer 4:

问得好Javanator,按我的分析

代码的可读性:

很好的做法,在方法声明变量开始,因为易于维护,并减少混乱。

性能:

情况1:

如果我们在声明开头的方法有法陈述数百个变量,我们需要在之前50个语句不必要地占用内存这些变量的最后10个变量。

如果我们需要在方法20个变量,我们在年初宣布,如果我们一开始就声明不必要地占用内存得到任何异常。

案例2:

如果我们声明变量,我们需要它提供更多的性能。



文章来源: Declare local variables as late as possible or at the nearest curly brace they belong? [closed]