Цель-C: Почему нужно проверять! = Ноль - PullRequest
2 голосов
/ 15 ноября 2011

Я часто вижу такой код:

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

Когда можно просто сделать проверку следующим образом:

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

Мне кажется, что второй подход гораздо лучше, так как он короче и его легче читать.

Так зачем вообще использовать первый подход?

Ответы [ 4 ]

5 голосов
/ 15 ноября 2011

Это в основном стиль, или некоторые люди не знают, что можно использовать первое решение.

Более того, это такие языки, как Java, где вы не можете написать второе решение. Вы должнынапишите yourVar! = null

4 голосов
/ 15 ноября 2011

Все дело в настройках кодирования.Некоторые могут чувствовать, что более длинная форма более ясна в отношении намерений, другие - что она слишком многословна.

1 голос
/ 15 июня 2012

Вы забыли о третьем подходе, который я часто использую:

if( !data ) {
    return;
}

Как и все остальные, это касается стиля ... и многое зависит от того, что компилятор поддерживает .Типы безопасных языков, таких как C # и Java, заставляют вас делать:

if( data == null ) {
    return;
}

Целевой компилятор c будет разрешать этот тип «синтаксического сахара» там, где другие не смогут.Мое мнение таково: используйте все возможности, которые предлагает компилятор, и постарайтесь сделать ваш код максимально читабельным для следующего парня;)

1 голос
/ 15 ноября 2011

В некоторых языках, таких как Java, условное выражение в скобках должно быть логическим выражением.На этих языках вы должны произносить такие вещи, как вы делаете в подходе 1. Если вы обнаружите, что переходите с языка на язык, то мне легче придерживаться этого подхода.У вас есть один способ, который работает относительно согласованно на всех языках.

Второй подход более компактен, а некоторым легче читать.Это так же верно, и, вероятно, чаще используется разработчиками C / C ++ / Objective-C.Если вы работаете исключительно на этих языках на основе Си, возможно, вам будет удобнее его использовать.Даже если вы решите не использовать подход 2 для языков на основе Си, привыкните видеть его всякий раз, когда вы смотрите на код других людей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...