Почему используются сравнения «задом наперед», например, false == obj.prop.subProp?
Часто встречаю, особенно во всевозможных проверках, в стороннем коде конструкции типа
false == obj.prop.subProp
или
1 == arr[8]
и т.п.
Вроде, как нормальный, воспринимается порядок "что" == "с чем" или "переменная" == "константа". Почему
иногда используются сравнения "задом наперед", например false == obj.prop.subProp?
Anton Kuzmichev, я не про это, я про тэг который уже убрали и поставили подходящий.
А так помимо проблем с операторами присвоения и проверки на равенство в некоторых языках, есть инфа, что это в некоторых случаях улучшает удобочитаемость кода. Если достаточно много ветвлений и/или нетривиальные выражения в условии.
Еще один момент - в Java, например, сравнение "London".equals(city) не выдаст NullPointerException, если city равна null; в отличие от city.equals("London")
Это называется Yoda-style.
true/false переменной по ошибке случайно не присвоить чтобы.
Слева значение это будет в условии если, компиляции на стадии ошибку получишь ты.