在 IF 条件下使用 NOT 运算符
2022-09-01 10:10:00
为了避免在 IF 条件下使用 NOT 运算符,以使代码更具可读性,这真的是一种好的做法吗?我听说更好,然后if (doSomething())
if (!doSomething()).
为了避免在 IF 条件下使用 NOT 运算符,以使代码更具可读性,这真的是一种好的做法吗?我听说更好,然后if (doSomething())
if (!doSomething()).
这真的取决于你想要完成什么。如果你没有其他条款,那么似乎很好。但是,如果您有if(!doSomething())
if(!doSomething()) {
...
}
else {
// do something else
}
我可能会颠倒这个逻辑,去掉运算符,让子句稍微清晰一些。!
if
作为一般语句,最好使 if 条件尽可能可读。对于您的示例,请使用 !还可以。问题是当事情看起来像
if ((a.b && c.d.e) || !f)
你可能想做这样的事情
bool isOk = a.b;
bool isStillOk = c.d.e
bool alternateOk = !f
那么你的 if 语句被简化为
if ( (isOk && isStillOk) || alternateOk)
它只是使代码更具可读性。如果你必须调试,你可以调试 isOk vars 集,而不必挖掘作用域中的变量。它对于处理NPE也很有帮助 - 将代码分解成更简单的块总是好的。