В чем разница между if (!переменная) и if (переменная != ноль) iphone

#iphone

#iPhone

Вопрос:

В чем именно разница между

 if(!variable)
   do something
  

и

 if(variable != nil)
    do something
  

Ответ №1:

Как уже отмечалось, у вас немного обратная логика, но за пределами этого они будут работать одинаково.

Главное, что следует учитывать, это то, что ( variable != nil ) немного более понятно, что вы проверяете и какого типа переменная, поскольку кто-то может начать думать, что переменная является логическим значением.

Комментарии:

1. кроме того, ! при сканировании кода легко пропустить, вот почему я всегда использую (variable != nil) форму; это делает более очевидным то, что я пытаюсь сделать.

2. Привет, спасибо за ответ, вы хотите сказать, что они «точно» одинаковы? Я также получил противоречивый ответ на этот below..so теперь действительно запутался.

3. Цель того, что вы пытались спросить, делает их одинаковыми (то есть, если бы вы вставили (переменная == ноль) вместо != , что, как я предполагал, вы имели в виду)

Ответ №2:

Они абсолютно одинаковые:

if ( !var ) эквивалентно if ( var != nil )

Комментарии:

1. Я думаю, что он неправильно сформулировал вопрос, он хочет знать, в чем разница между выполнением if (!var) и if(var == nil).

2. действительно?? Я видел во многих кодах Apple инструкции {if(!variable) [освобождение переменной]} — в методе dealloc … что означает, что если переменная выделена, освободите ее.. Это не может означать — Если переменная равна нулю, отпустите ее — верно?