我在几个地方看到过使用if(变量!= nil),我个人更喜欢if(变量),因为我们避免了比较操作。有人可以解释一下,请问更好的方法,最重要的是,为什么!感谢。
答案 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应该警告你。