#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 … что означает, что если переменная выделена, освободите ее.. Это не может означать — Если переменная равна нулю, отпустите ее — верно?