这可能只是一个样式问题,但我正在阅读一本Java编码书('Programming Android')并且编写者在变量方法之前首先声明为null,这是一种我不熟悉的实践.例如:
if (null == foo) {
    //code here
}
Run Code Online (Sandbox Code Playgroud)
要么
if (null != foo) {
    //code here
}
Run Code Online (Sandbox Code Playgroud)
代替
if (foo == null) {
    //code here
}
Run Code Online (Sandbox Code Playgroud)
我看不出顺序如何在语义上/语法上产生差异,或者我在这里错了?真的很好奇.
tbo*_*odt 11
这可能是C/C++遗留下来的习惯.在C中,你会在左边放置常量,因为如果你输入错误=而不是==会出现错误,因为你无法为常量赋值.在Java中,这是不必要的,因为它if (foo = null)也会产生错误,该错误表示对象引用不是布尔值.
小智 5
这是C/C++的延续.如果您意外使用赋值=运算符,将值放在==运算符的左侧是有利的.当你打算输入var == 14时,C编译器会将14 = var作为错误捕获,但var = 14将编译.在Java中没有太多理由这样做,但有些人仍然这样做.