我一直想知道,一般来说,在循环之前声明一个丢弃变量,而不是在循环内重复声明,是否会产生任何(性能)差异? Java中的一个(非常没有意义)示例:
a) 循环前声明:
double intermediateResult;
for(int i=0; i < 1000; i++){
intermediateResult = i;
System.out.println(intermediateResult);
}
b) 声明(重复)在循环内:
for(int i=0; i < 1000; i++){
double intermediateResult = i;
System.out.println(intermediateResult);
}
a 还是 b 哪个更好?
我怀疑重复的变量声明(例如 b)会产生更多的开销理论上,但编译器足够聪明,所以这并不重要。示例 b 的优点是更紧凑,并将变量的范围限制在使用它的位置。尽管如此,我还是倾向于根据示例 a 编写代码。
编辑:我对 Java 案例特别感兴趣。
最佳答案
a 还是 b 哪个更好?
从性能的角度来看,您必须对其进行衡量。 (在我看来,如果你能测量出差异,编译器就不是很好)。
从维护的角度来看,b 更好。在尽可能窄的范围内,在同一个地方声明和初始化变量。不要在声明和初始化之间留下空隙,也不要污染你不需要的命名空间。
https://stackoverflow.com/questions/407255/