这个问题仅仅是做之间的比较:
if(Null != Object){
/// code here.
}
if(Object != Null ){
/// code here.
}
如果一个条件陈述优于另一个条件陈述,任何人都可以插话吗?它是否依赖于案例?
我一直使用Object != Null
,但我今天听说过Null != Object
,并想知道它的不同之处?
语言不可知。
- 感谢所有人的好评!
答案 0 :(得分:1)
它们在逻辑上是相同的。
我认识那些喜欢Null != Object
的人,他们最常见的原因是:
=
代替==
的可能性较小,因为Null = <anything>
会导致编译错误。苍蝇的第一个原因(尽管我认为它不值得编码可读性),但我非常反对第二个原因。我个人更喜欢Object != Null
的可读性。它与所表达的逻辑的实际口头形式非常接近。 (请记住,代码主要是由人类阅读,并且只有次要目的由机器执行。)
答案 1 :(得分:1)
有些人喜欢使用Null != Object
,因为它对拼写错误更安全。使用另一种形式,您编写Object = Null
的风险略高,这可能是一个严重且难以注意的错误。
其他人更喜欢Object != Null
,因为它更自然地用英语阅读。
但它完全是风格 - 两种形式在功能上是等价的。
答案 2 :(得分:1)
原因实际上是因为C,并且通常处理等于运算符而不是不等运算符。这是因为在C中,你有=
和==
,它们都做了完全不同的事情。问题是很容易将一个误认为另一个,所以你可能会得到以下代码:
int *i = malloc(sizeof(int));
if (i=NULL) {
... do nothing?
} else {
free(i);
}
这是一个很难错过的错误,但是这段代码应该使用==
运算符。问题是编译器认为这是正确的,你的代码中有一个错误。
除了样式之外,我不知道使用不等式运算符执行此操作的原因。
答案 3 :(得分:0)
还有两件事需要比较。