Всегда ли выгодно использовать goto в языке, который поддерживает циклы и функции? Если да, то почему?
Есть несколько причин для goto использования оператора "goto", о language-agnostic которых я знаю (некоторые exception-handling уже говорили об этом):
Чистый выход из функции
Часто language-agnostic в функции вы можете выделить c ресурсы и выйти из нее в goto нескольких местах. Программисты goto могут упростить свой код, поместив language-agnostic код очистки ресурсов в конец c функции, и все «точки выхода» функции language-independent перейдут к метке очистки. Таким c образом, вам не нужно писать exception-handling код очистки в каждой «точке c выхода» функции.
Выход из вложенных циклов
Если вы находитесь goto во вложенном цикле и вам exception-handling нужно выйти из всех циклов, оператор language-independent goto может сделать это намного c чище и проще, чем операторы exception-handling break и проверки if.
Низкоуровневые улучшения производительности
Это допустимо exception-handling только в коде, критичном language-agnostic к производительности, но exception-handling операторы goto выполняются c очень быстро и могут дать exception-handling вам ускорение при перемещении language-independent по функции. Однако это палка exception-handling о двух концах, поскольку language-agnostic компилятор обычно не может language-independent оптимизировать код, содержащий exception-handling операторы goto.
Обратите внимание, что goto во всех этих примерах goto language-agnostic ограничены рамками одной goto функции.
c
exception-handling
language-agnostic
goto
Всегда ли выгодно использовать goto в языке, который поддерживает циклы и функции? Если да, то почему?
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.