раскрыть ветку (9)
Зато не спасает от опечаток. На "if (null = result)" компилятор даст ошибку, на "if (result = null)" нет.
раскрыть ветку (8)
в данном случае да, в остальных - нет. ч то выбрать, надежность в 5% случаев применения ifа или читаемость и единообразие?
раскрыть ветку (5)
В каких случаях не спасет? "if (var1 == var2)"? А как по-другому вы хотите его написать? Остальные сравнения с immutables (кроме хитрожопых языков a-la javascript) будут "защищены". Впрочем, да, это дело стиля кодирования - как удобней, как нужнее, как скажет начальство...
раскрыть ветку (4)
P.S. Вы про неравенства? "if (var > 5)" которые. В таком случае не спасет, конечно же - тут уже дело для статического анализатора и обыкновенной отладки.
P.P.S. Лучше скажу заранее. Во-первых, лично я обратный порядок сравнения "if (null == result)" никогда не использовал и использовать не буду, и во-вторых, я никому его не навязываю и никого от него не отговариваю - есть плюсы и минусы, и для меня ни одна сторона не перевешивает другую.
P.P.S. Лучше скажу заранее. Во-первых, лично я обратный порядок сравнения "if (null == result)" никогда не использовал и использовать не буду, и во-вторых, я никому его не навязываю и никого от него не отговариваю - есть плюсы и минусы, и для меня ни одна сторона не перевешивает другую.
>>В каких случаях не спасет? "if (var1 == var2)"?
ага
>>А как по-другому вы хотите его
result != null
тем более что ! уже избавится от ошибки приравнивания
впрочем вы все правильно сказали
ага
>>А как по-другому вы хотите его
result != null
тем более что ! уже избавится от ошибки приравнивания
впрочем вы все правильно сказали
раскрыть ветку (2)
Следовало читать как:
> "if (var1 == var2)"? А как по-другому вы хотите его написать?
Если перевести с русского на русский: обратный порядок операндов в условии "if (null == var)", спасающий от ситуации "if (null = var)", не спасет от ситуации "if (var1 = var2)", так как эта операция является вполне легитимной. Однако в таком случае об обратном порядке операндов говорить нельзя, так как "if (var1 == var2)" и "if (var2 == var1)" равноценны по смыслу (кроме совсем тонких моментов вроде "всегда пишу обращение к this слева от оператора сравнения") - обратного порядка просто не существует, так как нельзя сказать, какой из "порядков" прямой, а какой обратный.
> "if (var1 == var2)"? А как по-другому вы хотите его написать?
Если перевести с русского на русский: обратный порядок операндов в условии "if (null == var)", спасающий от ситуации "if (null = var)", не спасет от ситуации "if (var1 = var2)", так как эта операция является вполне легитимной. Однако в таком случае об обратном порядке операндов говорить нельзя, так как "if (var1 == var2)" и "if (var2 == var1)" равноценны по смыслу (кроме совсем тонких моментов вроде "всегда пишу обращение к this слева от оператора сравнения") - обратного порядка просто не существует, так как нельзя сказать, какой из "порядков" прямой, а какой обратный.
раскрыть ветку (1)