-
- Асм не запретили, а гото запретили? Так не бывает. - SciFi(13.11.2025 16:16)
- +100! ) И на этом весь этот goto-анафемовский спич можно было бы и за(при)кончить. - SERGHIO(13.11.2025 18:26)
- нет, но goto моветон. Всегда можно обойтись без его использования и
в этом случае тоже. - abivan(13.11.2025 16:00)
- Я соглашусь, что с появлением defer в C2y потребность в goto
снижается. Но goto, ИМХО, в ряде случаев все равно понятнее. - LightElf(13.11.2025 17:35)
- defer еще более запутанная и непрозрачная хрень по сравнению с
goto. - 3m(13.11.2025 18:14)
- Смотря для чего, хотя я лично больше за _try/_finally. - LightElf(13.11.2025 19:08)
- defer еще более запутанная и непрозрачная хрень по сравнению с
goto. - 3m(13.11.2025 18:14)
- Полным-полно случаев, когда без goto невозможно обойтись. И попытка
сделать что угодно, но лишь бы goto не использовать - идиотизм! - Eddy_Em(13.11.2025 17:05)
- давай пример, обсудим идиотизм. У меня проект на 200+ только моих
файлов(без сторонних библиотек) и ни в одном из них нет goto, что я
делаю не так? - abivan(13.11.2025 17:45)
- А давай зададимся вопросом, так ли сильно case-switch отличается от
goto? (а уж их-то у тебя в тексте не может не быть :) - Cкpипaч(13.11.2025 23:01)
- да, сильно отличается, например возможностью свертки abivan(1 знак., 14.11.2025 11:15, картинка)
- Например, у тебя нет необходимости выйти из вложенных циклов. Либо
нет необходимости выйти из вложенных КА. Ну и т.д., и т.п. Только в
очень простом коде goto не нужен. А еще "крестоносцы" им не
пользуются явно, т.к. у них и goto, и longjump есть "под ковром".
Только они этого не знают. - Eddy_Em(13.11.2025 22:34)
- В Джаве break умеет выпрыгивать из вложенных циклов. Как бы goto,
но диапазон возможных применений сильно ограничен. - SciFi(13.11.2025 23:08)
- Странно что в плюсы этот синтаксис не добавили. - =AlexD=(14.11.2025 07:45)
- Ты несовсем прав. Обойтись - можно. И в 97,5% случаев компилятор
разберется и сведет к эквивалентному коду. Но визуально будет сложнее :) - Cкpипaч(13.11.2025 23:03)
- Естественно, конструкция вида Eddy_Em(523 знак., 14.11.2025 08:57)
- ok, а можно кусочек(скриншот) кода где это используешь, а не чисто
академически рассуждать, а то циклов можно было еще пяток добавить. - abivan(14.11.2025 11:20)
- Ну, вот - самый стандартный вариант, где обязательно нужен goto: Eddy_Em(333 знак., 14.11.2025 13:59)
- А можно кусочек (скриншот) кода где это вы используете пять+
вложенностей циклов? А то чисто академически рассуждать как-то не
по феншуй :) Cкpипaч(1 знак., 14.11.2025 13:21, ссылка)
- Можно и без кучи вложенностей - обработка ошибок. Andreas(228 знак., 14.11.2025 13:47)
- ok, а можно кусочек(скриншот) кода где это используешь, а не чисто
академически рассуждать, а то циклов можно было еще пяток добавить. - abivan(14.11.2025 11:20)
- Естественно, конструкция вида Eddy_Em(523 знак., 14.11.2025 08:57)
- В Джаве break умеет выпрыгивать из вложенных циклов. Как бы goto,
но диапазон возможных применений сильно ограничен. - SciFi(13.11.2025 23:08)
- А давай зададимся вопросом, так ли сильно case-switch отличается от
goto? (а уж их-то у тебя в тексте не может не быть :) - Cкpипaч(13.11.2025 23:01)
- давай пример, обсудим идиотизм. У меня проект на 200+ только моих
файлов(без сторонних библиотек) и ни в одном из них нет goto, что я
делаю не так? - abivan(13.11.2025 17:45)
- Ну-да, "обойтись" какими-то прагмами и не очень стандартными
fallthrough, вместо исконно-посконного goto. :-/ - reZident(13.11.2025 16:38)
- я не использую прагмы. мой код работает везде( С89) . Я спокойно не
ставлю брейк, но пишу комент //nobreak И вот так иногда делаю,
чтобы в кейсах код не дублировать abivan(1 знак., 13.11.2025 16:51, ссылка)
- А что будет страшного, если в вашем примере поставить goto LABEL2;
, а затем break; ? Формальный break будет на месте и предупреждения
не будет. Или наоборот - настанет борьба за предупреждение о
"недостижимом" break? :-))) reZident(170 знак., 13.11.2025 17:38)
- да ничего страшного, работать будет и компилятор будет доволен, но с моей точки зрения это ненужные сущности и загромождение кода. abivan(41 знак., 13.11.2025 18:08)
- А что будет страшного, если в вашем примере поставить goto LABEL2;
, а затем break; ? Формальный break будет на месте и предупреждения
не будет. Или наоборот - настанет борьба за предупреждение о
"недостижимом" break? :-))) reZident(170 знак., 13.11.2025 17:38)
- я не использую прагмы. мой код работает везде( С89) . Я спокойно не
ставлю брейк, но пишу комент //nobreak И вот так иногда делаю,
чтобы в кейсах код не дублировать abivan(1 знак., 13.11.2025 16:51, ссылка)
- Я соглашусь, что с появлением defer в C2y потребность в goto
снижается. Но goto, ИМХО, в ряде случаев все равно понятнее. - LightElf(13.11.2025 17:35)
- особенно, когда LABELn - метки. Я думал, что надо писать "goto LABEL1 ". И компилятор, наверное также думает. :) - =L.A.=(13.11.2025 15:39)
- Асм не запретили, а гото запретили? Так не бывает. - SciFi(13.11.2025 16:16)