Тут перевод TADS-мануала неожиданно натолкнул меня на мысль: что может заставить современнх программистов использовать оператор безусловного перехода a.k.a. goto? Речь, естественно, идет не о программировании на Ассемблере, Fortran 66 и т. п., а о более-менее структурированных языках, позволяющих теоретически вообще без него обойтись. Обращаюсь к программистам среди наших форумчан (их, к счастью, есть у нас:): пользуетесь ли вы оператором goto и в каких целях?
Начну, как положено, с себя. Я goto пользуюсь, пожалуй, исключительно при программировании на Visual Basic for Applications. Делаю это по следующим причинам: во-первых, ряд процедур удобнее генерировать при помощи встроенных "визардов", а они их генерят как раз с активным использованием goto. Править каждый раз такую процедуру вручную, убирая goto - значит сводить на нет все преимущества автоматизации;). Во-вторых, безусловный переход на метку в VBA удобно использовать при проверке на возникновение ошибки. В этом случае все обработчики ошибок локализуются в конце процедуры, что делает код в целом более читаемым. И, хотя теоретически подобной группировки можно добиться и другими средствами (и, например, программируя на Паскале, я бы совершенно точно организовал такую группировку без goto), в VBA такой способ кажется почему-то наиболее естественным и удобным.
Отредактировано uux (17.08.2007 21:40)
Неактивен
Вообще, в тему "goto": хотя я всегда придерживался идеи "если сильно хочется, то можно" и не имею ничего против "корректного" использования "goto", я уже лет 10 его не использую совсем. никогда. (если язык позволяет этого избежать, разумеется).
Eten написал:
Если найдете способ написать весь этот алгоритм разбора числа формата целого и десятичного (пример 2 2.3 2.3e+3 и еще три, всего шесть вариантов), без goto так, чтобы не занимало циклов больше, чем данный алгоритм и было также логичным по ходу действия.
Eten, реализация конечного автомата лексического анализатора занимает совсем немного) Без всяких goto. Если не забросишь - научишься всему)
GrAndrey написал:
В указанном случае можно подключить библиотеку регулярных выражений и упростить этот код до одной строки.
Вот уж где регэкспы ни к чему)) Поскольку "замедлят" скорость выполнения кода как минимум в десятки (наверняка, сотни) раз. С другой стороны, и приведённая Eten'ом реализация далеко не самая удачная.
Неактивен