LINUX.ORG.RU

История изменений

Исправление Stanson, (текущая версия) :

Что мешает вынести код в отдельную функцию/лямбду и сделать return. Пихая всё в одну функцию получается

Тебе скорее всего придётся написать десяток таких функций/лямбд для разных участков кода при мало-мальски сложной функции. Например, если тебе надо прочитать что-то из какой-нибудь железки, причём не зная что она тебе ответит, с разными вариантами завершения общения при разных исходах, то там будут десятки вариантов выхода которые возможно придётся выполнять на разных стадиях общения. В случае goto код получается компактным, понятным, и красивым. В любых других случаях получается нечитаемая лапша и скобкота, а если там ещё и всякие подковёрные defer с отдельными функциями будут, то это вообще будет жопа полная, а не код. Это прекрасно понимают все, кто хоть раз пытался написать что-то реальное, взаимодействующее с реальным внешним миром через железо.

Исходная версия Stanson, :

Что мешает вынести код в отдельную функцию/лямбду и сделать return. Пихая всё в одну функцию получается

Тебе скорее всего придётся написать десяток таких функций/лямбд для разных участков кода при мало-мальски сложной функции. Например, если тебе надо прочитать что-то из какой-нибудь железки, причём не зная что она тебе ответит, с разными вариантами завершения общения при разных исходах, то там будут десятки вариантов выхода которые возможно придётся выполнять на разных стадиях общения. В случае goto код получается компактным, понятным, и красивым. В любых других случаях получается нечитаемая лапша и скобкота, а если там ещё и всякие подковёрные defer с отдельными функциями будут, то это вообще будет жопа полная, а не код.