返回布尔变量或返回条件都相同吗?

returning boolean variable or returning condition both are same?

我被告知不要在 return 语句中使用变量,而是直接在 return 语句中使用条件。 下面代码中的第 3 行和第 4 行有什么区别吗?

String str = "Hello Sir";
boolean flag = str.contains("Hello");
return(flag);
// instead ask to use below
return(str.contains("Hello"));

我更喜欢使用变量,因为在复杂的计算中它们有助于调试。

这里真的没有区别。该变量存在于堆栈中,直接 returned 的值也是如此。

因此,从理论上讲,它们之间可能存在细微的性能差异。

但请放心:这里的可读性更为重要,因此我支持你:你可以使用这样一个额外的变量,当它有助于reader。但是,当您遵循简洁代码原则时,另一种选择是使用 计算该条件并 return 计算结果的方法。

请注意:"common"的做法是避免额外的变量,因此许多工具(例如 PMD 甚至 IDE)建议您直接 return(有关这方面的讨论,请参阅 )。

最后,回到性能上。如果您的方法被足够频繁地调用,JIT 无论如何都会 inline/compile 它并对其进行优化。如果该方法的调用频率不够高,我们会在乎多少纳秒的执行时间...

我看不出有什么不同.. 基本上它是直接返回值而不是返回包含该值的变量..

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

所以,第一个选项的性能更好..但没有什么值得违背你的个人喜好..