为了账号安全,请及时绑定邮箱和手机立即绑定

返回的布尔变量或返回的条件都一样吗?

返回的布尔变量或返回的条件都一样吗?

白猪掌柜的 2021-05-13 14:15:59
我一直在评论说不要在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仍将内联/编译它并对其进行优化。如果没有足够频繁地调用该方法,那么我们将在多或少的纳秒时间内执行呢?


查看完整回答
反对 回复 2021-05-19
?
ibeautiful

TA贡献1993条经验 获得超5个赞

我没什么区别..基本上,它是直接返回值与返回包含该值的变量。

编辑:好的答案看起来像是对问题的重写。.我的意思是它传递一个值(true / false)或传递一个变量以使系统解开它的值(var-> true / false)

因此,更好的性能是第一个选择。.但是没有什么不值得您个人偏爱的..


查看完整回答
反对 回复 2021-05-19
  • 2 回答
  • 0 关注
  • 161 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信