0

这个问题只是做之间的比较:

if(Null != Object){
   /// code here.
}


if(Object != Null ){
   /// code here.
}

如果一个条件语句优于另一个条件语句,任何人都可以插话吗?它取决于大小写吗?

我一直在使用Object != Null,但我今天听说Null != Object并想知道它的区别?

语言不可知论。

——感谢大家的参与!

4

4 回答 4

2

它们在逻辑上是相同的。

我认识一些喜欢的人,Null != Object他们给出的最常见原因是:

  • 使用=而不是==因为Null = <anything>会导致编译器错误,因此不太可能出现错误。
  • 它独特而酷。

第一个原因有点过分(尽管我认为代码可读性不值得一试),但我非常反对第二个原因。我个人更喜欢Object != Null可读性。它与所表达逻辑的实际口语形式相当接近。(请记住,代码主要是为人类阅读而编写的,只有次要目的是由机器执行。)

于 2013-07-25T23:39:28.680 回答
1

有些人喜欢使用它,Null != Object因为它对拼写错误更安全。使用另一种形式,您的写作风险略高Object = Null,这可能是一个严重且难以注意到的错误。

其他人更喜欢Object != Null它,因为它用英语读起来更自然。

但它是完全风格的——这两种形式在功能上是等价的。

于 2013-07-25T23:40:18.593 回答
1

原因确实是因为C,并且通常处理相等运算符而不是不等运算符。这是因为在 C 中,你有=and ==,它们都做完全不同的事情。问题是很容易将一个误认为另一个,因此您最终可能会得到以下代码:

int *i = malloc(sizeof(int));
if (i=NULL) {
    ... do nothing?
} else {
    free(i);
}

这是一个很难错过的错误,但这段代码应该使用==运算符。问题是编译器认为这是正确的,而您的代码中存在错误。

除了风格之外,我不知道用不等式运算符这样做的原因。

于 2013-07-25T23:43:20.627 回答
0

有两件事仍然需要比较。

于 2013-07-25T23:37:54.617 回答