我一直在评论说不要在return语句中使用变量,而是直接在return语句中使用条件。下面的代码中的第3行和第4行之间有什么区别吗?String str = "Hello Sir";boolean flag = str.contains("Hello");return(flag);// instead ask to use belowreturn(str.contains("Hello"));我更喜欢使用变量,因为在复杂的计算中,这些变量有助于调试。
2 回答
哈士奇WWW
TA贡献1799条经验 获得超6个赞
这里真的没有区别。该变量位于堆栈中,因此直接返回的值也存在。
因此,从理论上讲,它们之间可能存在较小的性能差异。
但是请放心:可读性在这里更为重要,因此我与您同在:您可以在帮助读者时使用此类附加变量。但是,当您遵循简洁的代码原理时,另一种选择是拥有一种仅计算该条件并返回结果的方法。
请注意:“常见”做法是避免使用其他变量,因此许多工具(例如PMD或IDE)建议您直接返回(有关此方面的讨论,请参见此处)。
最后,恢复性能。如果您的方法被足够频繁地调用,那么JIT仍将内联/编译它并对其进行优化。如果没有足够频繁地调用该方法,那么我们将在多或少的纳秒时间内执行呢?
ibeautiful
TA贡献1993条经验 获得超5个赞
我没什么区别..基本上,它是直接返回值与返回包含该值的变量。
编辑:好的答案看起来像是对问题的重写。.我的意思是它传递一个值(true / false)或传递一个变量以使系统解开它的值(var-> true / false)
因此,更好的性能是第一个选择。.但是没有什么不值得您个人偏爱的..
添加回答
举报
0/150
提交
取消