Objective-C:为什么要检查!= nil

时间:2011-11-15 14:13:53

标签: objective-c

我经常看到这样的代码:

// Approach 1
if(data != nil){
    // Do this and that
}

当人们可以像这样进行检查时:

// Approach 2
if(data){
    // Do this and that
}

对我而言,第二种方法似乎更好,因为它更短更容易阅读。

那么为什么要使用第一种方法呢?

4 个答案:

答案 0 :(得分:5)

这主要是一种风格偏好,或者有些人不知道可以使用第一种解决方案。

此外,它们是像java这样的语言,你无法编写第二个解决方案,你必须编写yourVar!= null

答案 1 :(得分:4)

这完全取决于编码偏好。有些人可能会觉得较长的形式对于意图更为明确,有些则认为它过于冗长。

答案 2 :(得分:1)

像Java这样的语言要求括号内的条件是布尔表达式。在这些语言中,你必须拼写你在方法1中所做的事情。如果你发现自己从语言跳到语言,那么我发现更容易坚持这种方法。你有一种方法可以在所有语言中相对一致地工作。

第二种方法更紧凑,有些人发现它更容易阅读。它同样有效,并且可能更常用于C / C ++ / Objective-C开发人员。如果您专门使用这些基于C语言的语言,则可能更适合您使用。即使您选择不使用基于C语言的方法2,也可以在看到其他人的代码时习惯看到它。

答案 3 :(得分:1)

你忘记了第三种方法,我使用了很多:

if( !data ) {
    return;
}

与其他人一样,很多都是风格......很多都取决于编译器支持。输入类似C#和Java的安全语言可以:

if( data == null ) {
    return;
}

目标c编译器将允许这种类型的“语法糖”,其他人不会。我的意见是利用编译器提供的任何功能,并尝试使代码尽可能地为下一个人提供可读性;)