在检查变量是否为null时,我已经看到建议的编码样式是if(null == a).这有什么区别if(a == null)?
ysh*_*vit 28
没有.
人们有时会null == a出于历史原因写作,因为它消除了C语中与拼写相关的错误的可能性.如果你要写:
if (a = NULL) { // note, only single =
...
Run Code Online (Sandbox Code Playgroud)
在C中,然后执行赋值语句a = NULL,语句的结果是赋值(即NULL).因此,不是检查a值,而是将其设置为NULL,然后进行基本检查if (NULL),这始终为false.这编译,但几乎肯定不是你想要的.而这一切都归功于=vs 的小错字==.
如果你把第NULL一个,那么if (NULL = a)是一个编译错误,因为你不能为NULL表示的常量赋值.
在Java中,没有必要这样做,因为if (null) {...不编译.(您可以在Java中使用布尔变量获得相同的错误:if (someBooleanVar = someMethod()).但这是一种相对罕见的模式.)
这种风格有时被称为" 尤达条件 ",因为它让人想起尤达在星球大战中的古怪演说风格.
| 归档时间: |
|
| 查看次数: |
2009 次 |
| 最近记录: |