在[目标C]中哪个更好:if(变量)或if(变量!= nil)?

时间:2013-12-13 17:48:19

标签: objective-c

我在几个地方看到过使用if(变量!= nil),我个人更喜欢if(变量),因为我们避免了比较操作。有人可以解释一下,请问更好的方法,最重要的是,为什么!感谢。

2 个答案:

答案 0 :(得分:4)

无论如何,编译器都会优化比较,生成的代码不会有任何差异。

这只是一个风格问题,也可能是可读性问题。

答案 1 :(得分:2)

  

if(variable)因为我们避免了比较操作

     

编译器无论如何都会优化比较

这是if(variable)定义在这两种形式中,如果表达式将une等于0,则执行第一个子语句。 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1548.pdf < / p>

并且nil被定义为0指针。

因此,正确的方法是,只要if (variable)是指针,就if (variable!=nil)定义为variable

  

这只是一个风格问题,

您可以通过省略!===中的第一个符号来犯大错误,因此避免使用if(variable==nil)if(variable!=nil)这是一个非常标准的建议。虽然clang应该警告你。