В чем разница условия?

92
01 июня 2021, 13:50

Несколько раз натыкался на такую штуку, когда определяют условие пишут так

if (null == instance) хотя традиционно всегда пишут наоборот if (instance == null) какая разница? или кому как нравиться?

Answer 1

Во втором случае можно ошибиться и написать if (instance = null), то есть выполнить присваивание, а не проверку. Это скорее всего, пошло из C/C++. В Java компилятор выдаст ошибку (однако, если instance имеет тип Boolean, то запись if (instance = null) приведет к NullPointerException).

Answer 2

Мастера Йоды нотация называется это. Слева константу ставят, ошибки замены сравнения на присваивание избегая (ошибку времени трансляции или компиляции вызывает это).

Однако в языках, в которых условие в if () должно иметь специальный тип boolean (в том числе Java) это лишнее, поскольку такой код не скомпилируется в любом случае.

READ ALSO
Я не могу понять, что идет не так [закрыт]

Я не могу понять, что идет не так [закрыт]

Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском

93
Как сохранить pdf файл из iframe на сервере?

Как сохранить pdf файл из iframe на сервере?

Веб-приложение ASPNET Core MVC + c#

123
Unity движение персонажа

Unity движение персонажа

Скачал SimpleTouchController, все в нем ок, создаю сцену, помещаю туда объект, вешаю на него этот контроллер и начинается приколы, если джойстик внизу...

93
Враги должны воспринимать друг друга, как препятствие. Unity2D, C# [дубликат]

Враги должны воспринимать друг друга, как препятствие. Unity2D, C# [дубликат]

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

91