Java 如果(isTesting==false)?如果(false==isTesting)?如果(!istest)?哪种编程方式最好
几年前,我正在为条件检查编写代码,如下所示Java 如果(isTesting==false)?如果(false==isTesting)?如果(!istest)?哪种编程方式最好,java,Java,几年前,我正在为条件检查编写代码,如下所示 boolean isTesting ==false; if(isTesting==false) 在一个晴朗的日子里,一个年长的家伙来找我,告诉我这不是一个有效的方法。然后向我解释了这件事。我听到了,但我想我没听。 所以我开始像下面这样写,而不知道它的目的 if(false==isTesting) 现在突然又对这个话题产生了好奇心,这真的很有效!?哪一个是最好的方法 如果(isTesting==false)? if(false==istest)? 如
boolean isTesting ==false;
if(isTesting==false)
在一个晴朗的日子里,一个年长的家伙来找我,告诉我这不是一个有效的方法。然后向我解释了这件事。我听到了,但我想我没听。
所以我开始像下面这样写,而不知道它的目的
if(false==isTesting)
现在突然又对这个话题产生了好奇心,这真的很有效!?哪一个是最好的方法
如果(isTesting==false)
?
if(false==istest)
?
如果(!istest)
对于if(null==value)
和if(value==null)
也有同样的疑问。请澄清
提前感谢。最好的是
if(!istest)
,因为它最简单、最干净
如果(value==null)其他两个选项中的为
更自然,所以我建议使用那个
if (isTesting == false)
这有点危险,因为您可能会忘记签名和书写
if (isTesting = false)
编译(它将false赋值给istest
,并计算为false)
避免该问题,因为忘记=
会使代码无效。但它太冗长了,将已经是布尔值的内容与另一个布尔值进行比较,从而生成布尔值。所以
if (!isTesting)
做同样的事情,表明您理解booelan表达式是什么,并且没有忘记=
的风险。你当然应该更喜欢最后一种方式
书写
if (null == value)
是不必要的,因为忘记一个相等的
if (value = null)
将导致代码无效value=null
不是布尔表达式(除非值的类型为boolean
)。因此,使用更自然的value==null
无论如何,除非您经常切换到使用=
而不是=
进行比较的语言,否则您通常不会忘记使用=
而不是=
。几天后就变得自然了。当您在布尔表达式中使用=
而不是=
时,好的IDE和代码质量工具会警告您。在功能上它们都是等效的
也就是说,建议在==的左侧写入常量/文字是因为不可能意外地写入=(赋值)而不是==(相等)。由于您不能分配给常量/文字,如果您意外地编写了=,编译器会抱怨
简短,简洁!表达式并没有这样的问题,而且它还使表达式的计算结果必须是布尔值(其他所有内容都将是编译错误)变得非常明显。因此,一个简单的if(boolean)/if(!boolean)通常被认为是最符合逻辑的习惯用法。最佳方式:if(!isTesting)
这只是Joda模式,与效率无关。不,不,不,最好的方式是:if(isTesting&isTesting==isTesting^isTesting)
@andemoniy LOL,这很容易阅读,而且非常有效。你让我的项目超快;)
if (value = null)