写a == 2和2 == a之间的区别

Dee*_*ari 0 c c++ java

我脑子里有个问题.在我看到的许多地方

int a=2;
if(2==a){
  //Some operation
}
Run Code Online (Sandbox Code Playgroud)

你能告诉我什么是对比较优势2==a的地方a==2.

Mik*_*our 11

有些人喜欢这样做是为了强制错误,而不是错误的行为,如果他们不小心输入=而不是==.然而:

  • 它只在某些情况下有帮助(当要比较的值之一是可修改的而另一个不可修改时)
  • 如果你犯了那个错误,任何体面的编译器都会发出警告(如果你确实想要分配,请添加括号和/或显式比较)

所以唯一真正的目的是让代码混淆阅读.

一个更好的习惯可能是声明所有变量const,除非你特别希望它们是可变的.这也可以防止意外分配,同时使代码更容易而不是更难以推理.

  • @ DOUGLASO.MOEN:确实,不要等待运行时错误.正如我所说,如果你犯了这个错误,任何体面的编译器都会发出警告(尽管你明显断言他们不会这样做). (2认同)