在Objective C中,if(object == nil)和if(nil == object)之间有区别吗?

Bil*_*ill 4 coding-style objective-c assignment-operator comparison-operators

我会倾向于

if (object == nil)
Run Code Online (Sandbox Code Playgroud)

但我在一些教程中注意到了使用

if (nil == object)
Run Code Online (Sandbox Code Playgroud)

这只是一种风格的东西,还是有一些合理的理由使用这两种格式?

Nei*_*ken 10

通常这样做是为了防止使用赋值运算符而不是比较运算符.如果你意外输入了这个例子:

if (object = nil)
Run Code Online (Sandbox Code Playgroud)

它可以编译,但它不是你想要的.

通过使用第二种形式,如果输入错误,将确保编译时错误,因为在分配中不能将其用作左操作数.

请注意我不是一个客观的C程序员,但这个问题对很多语言都是通用的.