|
|
| Результаты опроса: Используете ли Вы оператор goto? | |||
| Программирую исключительно на goto |
|
4 | 10.00% |
| Использую, если имеет смысл |
|
22 | 55.00% |
| Категорически не использую |
|
13 | 32.50% |
| Использую, но никто об этом не знает |
|
1 | 2.50% |
| Голосовавшие: 40. Вы ещё не голосовали в этом опросе | |||
|
|
Рейтинг 4.59/68:
|
|
198 / 93 / 43
Регистрация: 09.11.2019
Сообщений: 414
|
|||||||||||
Ваше отношение к goto10.08.2021, 19:57. Показов 15139. Ответов 95
Всем привет.
Обычно оператор безусловного перехода goto хейтится. Данным постом я не хочу поднимать очередной холивар, хочу просто узнать мнение окружающих - как относитесь к практике применения goto там, где это имеет смысл, и используете ли сами. Парочка примеров, с которыми я столкнулся буквально вот на днях:
1. Либо сделать присвоение predicate = null(или ещё что) и избавиться от блока default целиком. Хотя лично мне спокойнее, когда default в коде имеется. 2. В блоке default скопипастить кейс, на который ссылаюсь(тогда при изменениях надо помнить, что менять нужно в 2 местах). В свитче я оставил goto(мой первый goto в жизни )Другой пример:
1. Применить SelectMany к groups и оставить один цикл foreach. 2. Повозиться с флагами и break'ами. Здесь мне готушить не хочется, не знаю почему. Т.е. можно и без goto жить в обоих приведенных(и ещё n неприведённых) примерах.
0
|
|||||||||||
| 10.08.2021, 19:57 | |
|
Ответы с готовыми решениями:
95
Ваше отношение к DOSу Ваше отношение к SCRUM Ваше отношение к Windows 10 |
|
198 / 93 / 43
Регистрация: 09.11.2019
Сообщений: 414
|
|
| 14.08.2021, 19:54 [ТС] | |
|
0
|
|
|
Модератор
|
||||||
| 14.08.2021, 23:42 | ||||||
|
В том числе оптимизировал различные драйвера. Я уже писал об этом ранее, когда приходилось подсчитывать каждый байт и заменять call на jump. Такой break ни чем не отличается от goto с переходом вперёд, но добавляет лишний код. Вопрос не в том можно ли реализовать любой алгоритм без goto. Это априори возможно. По сути можно любой цикл использовать как замену goto. Вопрос в том какой код более понятный. Я не исключаю того, что для некоторых задач код с goto понятнее, прозрачнее чем искусственное введение в него вечного цикла или одноразового метода. В том числе это относится к примеру для ввода значения переменной. Вы указываете на то, что в .Net его не должны применять. Я вам сразу написал, что не смотрел исходники. Если приведёте конкретный пример и свои аргументы, то какой-то смысл это будет иметь. Возможно по этому конкретному примеру я оспорю ваши аргументы или соглашусь с вами. Но в целом вопрос об использовании goto в .Net - это вопрос к его разработчикам, а не ко мне. Для меня это только пример того, что в каких задачах использование goto даёт больше преимуществ, чем реализация без него. По вашему, если я доверяю своё лечение докторам - это значит я верю им как богам? Доверие к специалистам в той или иной области не имеет никакого отношения к религии. По сути ничего кроме "goto - это плохо" никто никаких аргументов не привёл. Опять таки не надо воспринимать мои слова как призыв к активному использованию goto. Это не так. Даже задача с вводом переменной, если расширить цикл for блоком предвыполнения, может быть очень красиво и эффективно решена этим циклом. Но такого цикла нет. Поэтому остаются три варианта: goto, одноразовый метод, вечный цикл. Из трёх, на мой взгляд, самый понятный, прозрачный - это с goto.
0
|
||||||
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|||
| 14.08.2021, 23:50 | |||
|
0
|
|||
|
Модератор
|
|
| 15.08.2021, 00:13 | |
|
0
|
|
|
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
|
|
| 15.08.2021, 00:36 | |
Сообщение было отмечено SlavaRus как решение
Решение
Элд Хасп, не могу себе представить от этого бОльших проблем, чем от
goto... Ну да ладно.
0
|
|
|
|
|
| 15.08.2021, 07:10 | |
|
0
|
|
|
|
||
| 15.08.2021, 12:30 | ||
|
Вы, прибегая в своих рассуждениях к исходникам Net, так и не удосужились назвать хоть какие-то причины использования goto в них. Я попытался это сделать за вас, предположив постом выше, что на это они пошли ради некоего быстродействия. Но не важно. Иных принципиальных примеров для популяризации goto найти крайне сложно, зато статей порочащих эту практику - навалом. К чему бы мы не пришли по итогу нашей дискуссии, это ровным счетом не меняет ничего. Поэтому я и спросил - что вы доказываете? А если ваша цель совершить революционный переворот в программировании, то вы явно выбрали не ту площадку для выражения своих мыслей.
0
|
||
|
Модератор
|
|||||
| 15.08.2021, 20:07 | |||||
|
Какая революция?
0
|
|||||
|
|
||||
| 20.08.2021, 10:17 | ||||
goto, как я понимаю.На самом деле, если вы единственный разработчик и хорошо понимаете что делаете, то почему бы и нет. Но в коллективе же вам бы наверное подсказали, как обойтись без goto.
0
|
||||
|
|
||
| 24.08.2021, 11:34 | ||
|
p.s. не любитель while(true), но на практике так обычно никто и не пишет. Разве что когда очень спешат и не до рефакторинга. Форум и примеры с него не показатель -- я тут такую чушь порой пишу специально, что лучше никому и не показывать.
0
|
||
| 24.08.2021, 13:57 | |
|
0
|
|
| 24.08.2021, 13:57 | |
|
Ваше отношение к co-working? Ваше отношение к flash-заставкам Ваше отношение к деятельности Anonymous
Ваше отношение к не своим детям Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него.
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952
Инструкция внутри.
Сразу отвечу: А в PvP с ним. . .
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|