是否经常在代码中使用标志?

Dha*_*ana 5 flags

我在阅读别人的代码时遇到了很多旗帜,

if (condition1) 
    var1 = true
else
    var1 = false
Run Code Online (Sandbox Code Playgroud)

然后,

if (var1 == true)
    // do something.
Run Code Online (Sandbox Code Playgroud)

有很多像这样的旗帜.我很想知道,在代码中经常使用标志吗?

sho*_*osh 11

这个:

if (condition1)
   var1= true;
else
   var1 = false;
Run Code Online (Sandbox Code Playgroud)

是一个经典写得不好的代码.
相反,你应该写:

var1 = condition1;
Run Code Online (Sandbox Code Playgroud)

是的,标志对于使代码更具可读性和可能性更快非常有用.


Gre*_*reg 7

建议如果condition1是非常复杂的东西 - 比如if (A && (B || C) && !D)或包含大量开销(if (somethingTimeConsumingThatWontChange()))那么存储结果而不是复制粘贴代码是有意义的.

如果condition1只是一个简单的比较,那么不,我不会使用标志.

  • "如果condition1是非常复杂的话,那是明智的 - 比如if(A &&(B || C)&&!D)"当然,你会这样做:bool var1 = A &&(B || C)&&!D,而不是做一个完整的'ii'声明.此外,如果'var1'是一个标志,只需执行if(var1),而不是if(var1 == true) (4认同)