局部变量的声明和定义
问题描述:
在函数的开头或使用它们的地方声明变量会更好吗?局部变量的声明和定义
在开头声明它们的好处是我可以很容易地看到局部变量的列表。但是我在某处读到这会增加错误的可能性。
那么,有什么更好?
在这种情况下最好在开始时声明它们,我应该总是用一个值初始化它们吗?
答
由于方法应该很短,因此局部变量的数量非常小,我认为在使用它们之前声明局部变量更好(不是所有的变量都在顶部)。
如果可能的话,应尽快对其进行初始化以提高可读性。如果他们被声明在需要的地方,你几乎总是可以用一个有意义的值来初始化,而不是null,0或者“”。
答
在某些情况下,编译器会强制您指定值Definite assignment analysis - Wikipedia, the free encyclopedia。然而,在这种情况下,为什么初始化为0 - 只是将变量初始化为第一个赋值。
你不需要马上初始化它,但是你必须在它被使用之前初始化它。
答
就像Josh Bloch在他的“有效的Java”中解释的那样,只有在你需要之前,你才应该声明本地代码 - 使代码更具可读性,可维护性和防止错误。
如果不是为了获得一个新的对象或在本地上下文中再次赋值的原始值,而声明局部变量为final也是一种好的做法。