根据Java编码标准,以下哪一项是最佳实践
public void function1(){
boolean valid = false;
//many lines of code
valid = validateInputs();
//many lines of code
}
或
public void function1(){
//many lines of code
boolean valid = validateInputs();
//many lines of code
}
这里'valid'将不用于返回。它的作用域仅在函数内部。有时只有一个if条件
我通常编写类似于第二种情况的代码。好像我的上级不喜欢这样,在我提交审核的时候修改了代码。我的方法不正确,有什么具体的原因吗?我认为第一种方法的缺点是很难在稍后将方法重构为多个方法。
我会选择第二种方法——这里不是Java编码标准的问题,而是代码干净易读的问题。同样,在第一种情况下,您将值false
赋给valid
,但这实际上是不正确的,因为valid
在那一点上不应该有任何值。
附带说明,我不期望一个名为validateInputs()
的方法返回boolean
。这里没有传递参数,而且这个名字也没有暗示这个方法会返回什么。把你的代码重构成boolean validInput = isValid(input)
怎么样?
我更喜欢只在它们使用的范围内声明变量。这可以避免在不应该使用它的时候意外使用它,并且意味着您可以同时看到声明和用法,而不必跳到代码的开头来查找它。
在C语言时代,你必须使用第一种形式,因为编译器不是很聪明。但是添加了第二种形式,因为它使代码更容易理解。
哪个更好是个人品味的问题。每个地方都有自己的标准,所以你应该在工作中遵循它。
这是我认为每个程序员都应该有自己的个人项目的另一个原因。这样,你也可以在家里用自己的风格编码,这样你就不会被一种风格困住了。
做决定总是要有理由的。
第二个例子更好,因为最好在声明中初始化值。 Google有一套很好的标准,适用于许多c语言。您所引用的示例显示在"局部变量"部分。