If statement 良好实践:将值与布尔值进行比较?

If statement 良好实践:将值与布尔值进行比较?,if-statement,boolean,code-readability,If Statement,Boolean,Code Readability,大多数时候,我更喜欢这样写: if(isWelcome() == true){} if(isWelcome() == false){} 而不是这个 if(isWelcome()){} if(!isWelcome()){} 因为我觉得它更容易阅读(但我明白它没有意义) 我想知道对于这种做法是否有共同的看法。大多数开发人员都做什么?我想知道编译器是否在做额外的比较,或者它是否明白这是无用的。如果你使用像Resharper这样的工具,你会得到一个提示,使用isWelcome()==true是多余的

大多数时候,我更喜欢这样写:

if(isWelcome() == true){}
if(isWelcome() == false){}
而不是这个

if(isWelcome()){}
if(!isWelcome()){}
因为我觉得它更容易阅读(但我明白它没有意义)


我想知道对于这种做法是否有共同的看法。大多数开发人员都做什么?我想知道编译器是否在做额外的比较,或者它是否明白这是无用的。

如果你使用像Resharper这样的工具,你会得到一个提示,使用isWelcome()==true是多余的。
编译器可以选择优化比较,这样我就不用太担心了

可读性很重要,添加单词并不总能提高可读性。而这

if(isWelcome() == false){}
可能比这更具可读性

if(!isWelcome()){}
if(isWelcome() == true){}
对于一个不熟悉什么的人!是的,这个

if(isWelcome()){}
实际上比这更具可读性

if(!isWelcome()){}
if(isWelcome() == true){}
因为现在你已经引入了没有信息价值的“噪音词”,并且增加了你的眼睛需要扫描的区域来了解发生了什么。您应该尽量减少代码,以充分传达程序员的意图


为了真正回答您的问题,我会说大多数程序员都会使用较短的版本。没有经验的程序员倾向于使用“冗长”版本。

我问的问题是一般情况。可能是Java、C#等。这个问题在某种程度上是主观的,对程序员来说可能更好。SEI同意“真实”形式。但是对于错误的表单,是只有我还是“!”字符很容易漏掉,即使我们熟悉它?是的,因为在您提供的示例中没有使用空格。如果在If和条件之间添加一个空格,它会变得更加明显。您甚至可以在内部表达式的两侧填充一个空格,现在您不会错过!,在提高可读性的同时,您将代码保持在最低限度。