|
![]() |
#1 |
Гость
|
Цитата:
скорее всего неточность в руководстве.
А я пока продолжу свои мысли по этому поводу. 1. Обратите внимание на примеры, приведенные в Best Practices. Dead code там выделен красным цветом. И в нашем примере - это именно оператор else с открывающей фигурной скобкой (я бы подкрасил еще и закрывающую скобку). Но не b++ и не return b. 2. Обратите внимание на текст, сопровождающий примеры в руководстве. В первых двух примерах (в которых dead кодом являются соответственно b++ и return a) ключевой фразой является ... is never reached (не будут достигнуты). Тогда как в третьем (рассматриваемом нами) примере ключевая фраза звучит по-другому: else is never "used". То есть, как я понимаю, код достижим, но является лишним. Или, я бы даже сказал "виртуально" не достижим (т.е. на более низком уровне - см. Ассемблер). Из всего сказанного выше я бы сделал вывод о том, что "dead code" - это недостижимый или лишний, бессмысленный в данном контексте код. Отвечая Юрию, работать будут оба варианта, причем абсолютно идентично, но присутствие в первом варианте оператора else - признак dead code. Вот и все. Кстати, первые два примера тоже будут работать, просто в них есть операторы, которые не выполнятся. В третьем примере - это оператор else. Он и не выполнится, а не его тело. PS: Что-то я много всего понаписал тут - обидно будет, если никто не ответит ![]() |
|