Соглашения об именах для ярлыков GoTo - PullRequest
5 голосов
/ 28 марта 2009

Как вы называете свои ярлыки GoTo? Я пользуюсь редко, поэтому мне трудно найти хорошие имена.

Пожалуйста, воздержитесь от классического «Гото это зло, и ешьте ваш код живым обсуждение»

Ответы [ 5 ]

5 голосов
/ 28 марта 2009

Мои названия меток почти всегда попадают в один из следующих шаблонов:

  • Вызывается «перезапуск», для перезапуска набора вложенных циклов, потому что изменение сделало что-то недействительным
  • Вызывается "выход" или "возврат", прямо перед оператором возврата, и присутствует только из-за оператора трассировки, который регистрирует возвращаемое значение для отладки
  • Имя совпадает с логической переменной, которую она заменяет
3 голосов
/ 28 марта 2009

В пакетных файлах я часто использую АД.

Как:

some_command || GOTO HELL

...

HELL: 

echo "Ouch, Hot!"
2 голосов
/ 28 марта 2009
  • «очистка», если она стоит перед освобождением ранее выделенных ресурсов (или аналогичный вид работы раздела «наконец»)
1 голос
/ 28 марта 2009

В фортране я использую goto для отката, и я обычно начинаю с 999 назад (в фортране, метки goto только числовые)

    call foo(err)
    if (err /= 0) goto 999

    call bar(err)
    if (err /= 0) goto 998

    call baz(err)
    if (err /= 0) goto 997

    ! everything fine
    error = 0
    return

997 call undo_bar()
998 call undo_foo()
999 error = 1
    return

Я также использую метки больше 1000, если по какой-то причине я хочу пропустить часть отката.

В C и других языках я бы использовал номер отката (например, rollback1, rollback2), поэтому по метке ясно, что вы собираетесь выполнить откат. Это в основном единственная веская причина для использования goto.

0 голосов
/ 28 марта 2009

Мне обычно это нужно только для 2 случаев. Таким образом, мои ярлыки goto: begin или наконец .

...