Cra*_*gus 15 language-agnostic refactoring conventions
为什么在一行上声明变量是不好的做法?
例如
private String var1, var2, var3
Run Code Online (Sandbox Code Playgroud)
代替:
private String var1;
private String var2;
private String var3;
Run Code Online (Sandbox Code Playgroud)
Dav*_*rre 18
在C++中:
int * i, j;
Run Code Online (Sandbox Code Playgroud)
我是int*类型,j是int类型.很容易错过这种区别.
除了将它们放在一行之外,还可以在以后添加一些注释
我认为有各种各样的原因,但它们都归结为第一个是可读性较差,更容易失败,因为单行不止一件事.
所有这一切都没有真正的好处,你不告诉我你找到两行节省的空间是一个真正的收获.
这与你遇到的情况类似
if ((foo = some_function()) == 0) {
//do something
}
Run Code Online (Sandbox Code Playgroud)
当然这个例子比你的更糟糕.
在C/C++中,您还遇到以下问题:用于指示指针类型的*仅适用于直接跟随的标识符.因此,缺乏经验的开发人员的一个相当常见的错误就是写作
int* var1, var2, var3;
Run Code Online (Sandbox Code Playgroud)
并期望所有三个变量都是'int pointer'类型,而对于编译器,它读为
int* var1;
int var2;
int var3;
Run Code Online (Sandbox Code Playgroud)
只使var1成为指针.
为什么这是不好的做法?只要您的代码仍然可读,我认为不是.
//not much use
int i, j, k;
//better
int counter,
childCounter,
percentComplete;
Run Code Online (Sandbox Code Playgroud)