iPhone SDK:请解释为什么"nil =="与"== nil"不同

Jan*_*ann 1 c iphone null objective-c

我已经为iPhone SDK编程了大约6个月,但我对一些事情感到有些困惑......其中一个我在这里问:

为什么以下方面有所不同?

if (varOrObject == nil)
{

}
Run Code Online (Sandbox Code Playgroud)

VS

if (nil == varOrObject)
{

}
Run Code Online (Sandbox Code Playgroud)

来自perl背景,这让我感到困惑......

有人可以解释为什么两个(第二个)中的一个是真的,而如果两个例程在代码中一个接一个地放置,则第一个不会. varOrObject这两个if陈述之间不会发生变化.

没有特定的代码发生在这里,只是我已经在很多地方读过两个语句不同,但不是为什么.

提前致谢.

Meh*_*ari 9

他们是一样的.您所读到的内容可能是在谈论如果您错误地写===,前者会将值赋给变量而if条件将为false,而后者则是编译时错误:

if (variable = nil) // assigns nil to variable, not an error.

if (nil = variable) // compile time error
Run Code Online (Sandbox Code Playgroud)

后者使您有机会在编译时纠正错误.