我一直在评论说不要在return语句中使用变量,而是直接在return statemnet中使用condition 在下面的代码中,第3行和第4行之间没有任何区别。
String str = "Hello Sir";
boolean flag = str.contains("Hello");
return(flag);
// instead ask to use below
return(str.contains("Hello"));
我更喜欢使用变量,因为在复杂的计算中,这些变量有助于调试
答案 0 :(得分:7)
这里真的没有区别。该变量位于堆栈中,直接返回的值也存在。
因此,从理论上讲,它们之间可能存在较小的性能差异。
但是请放心:可读性在这里更为重要,因此我与您同在:您可以在帮助读者时使用这样的附加变量。但是,当您遵循简洁的代码原则时,另一种选择是拥有一种仅能够计算该条件并返回结果的方法。
请注意:“常见”做法是避免其他变量,因此许多工具(例如PMD甚至是IDE)建议您直接 返回(请参见{{3 }},以便对此方面进行讨论。
最后,恢复性能。如果您的方法被足够频繁地调用,那么JIT仍将内联/编译它并对其进行优化。如果没有足够频繁地调用该方法,那么我们将在大约一纳秒的执行时间上花费多少精力……
答案 1 :(得分:-2)
我没什么区别.. 基本上,它是直接返回值,而不是返回包含该值的变量。
编辑:好的,答案看起来像是对问题的重写。.我的意思是,它传递了一个值(true / false)或传递了一个变量以使系统解开它的值( var-> true / false)
因此,第一种选择的性能更好。.但是没有什么不值得您个人偏爱的..