将变量初始化为虚拟值是不好的做法吗?

fro*_*die 6 default-value variable-initialization

这个问题是我刚才提出的这个问题答案的结果.

据称这段代码"丑陋",因为它将变量初始化为永远不会被读取的值:

String tempName = null;
try{
    tempName = buildFileName();
}
catch(Exception e){
    ...
    System.exit(1);
}
FILE_NAME = tempName;
Run Code Online (Sandbox Code Playgroud)

这确实是不好的做法吗?是否应该避免将变量初始化为永远不会实际使用的虚拟值?

(编辑 - 那么将一个String变量初始化为""一个循环之前会将值连接到String ...?或者这是一个单独的类别?

例如

String whatever = "";
for(String str : someCollection){
   whatever += str;
}
Run Code Online (Sandbox Code Playgroud)

)

Ada*_*ear 6

我认为将变量初始化为除非语言要求不会使用的值没有意义.

例如,在C#中,声明的字符串变量的默认值为null,因此您甚至无法通过显式写出来获得任何内容.它主要是一种样式选择,但由于字符串是不可变的,因此将其初始化为其他东西实际上会在内存中分配一个额外的字符串,无论如何都要扔掉.其他语言可能会强加其他考虑因素.