Как вы называете свои лейблы GoTo? Я использую редко часто, поэтому мне трудно найти хорошие имена.
Пожалуйста, воздержитесь от классического обсуждения "перейти к злу и съесть свой код заживо"
Как вы называете свои лейблы GoTo? Я использую редко часто, поэтому мне трудно найти хорошие имена.
Пожалуйста, воздержитесь от классического обсуждения "перейти к злу и съесть свой код заживо"
Имена моих лейблов почти всегда соответствуют одному из следующих шаблонов:
В пакетных файлах я часто использую АД.
Нравиться:
some_command || GOTO HELL
...
HELL:
echo "Ouch, Hot!"
В фортране я использую 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.
Обычно мне это нужно только для 2 случаев. Таким образом, мои метки перехода имеют вид begin или finally.