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

时间:2010-06-16 12:26:56

标签: objective-c coding-style assignment-operator comparison-operators

我倾向于

if (object == nil)

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

的使用
if (nil == object)

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

2 个答案:

答案 0 :(得分:10)

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

if (object = nil)

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

通过使用第二种形式,如果输入错误,将确保编译时错误,因为nil不能用作赋值中的左操作数。

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

答案 1 :(得分:2)

if (nil == object)版本可以更好地保护您,以防您意外地使用=而不是==。