4

я склоняюсь кВ Objective C есть разница между if (object == nil) и if (nil == object)?

if (object == nil) 

, но я заметил, в некоторых учебных пособиях использования

if (nil == object) 

Является ли это просто стиль вещь, или есть какое-то оправданно обоснование для использования любого формата?

+1

Его стиль, но в @Jim говорит, что второй вариант более безопасен в случае опечатки. – jamone

ответ

10

Обычно это делается для предотвращения использования оператора присваивания вместо оператора сравнения. Если вы случайно набрали это, например:

if (object = nil) 

Он может компилироваться, но это не то, что вы намеревались.

Используя вторую форму, вы обеспечите ошибку времени компиляции, если вы ее ошиблите, так как в качестве левого операнда в назначениях использовать noil can not.

Обратите внимание, что я не объективный программист на C, но этот вопрос является общим для многих языков.

+1

ОК. Мне кажется, что если у вас достаточно присутствия ума, чтобы сначала положить nil (если вы наберете single =), вы уже напомнили себе, что нужно сделать double ==. Благодарю. – Bill

+0

Действительно, я обычно не беспокоюсь о второй форме, но некоторые люди предпочитают ее просто быть в безопасности и иногда мешать найти ошибки. –

2

Версия if (nil == object) защищает вас лучше, если вы случайно положили = вместо ==.

 Смежные вопросы

  • Нет связанных вопросов^_^