| 7. Несчастный goto | |
| Я, как автор литературы о программировании, конечно же, не могу отказаться от такого заезженного штампа, как обсуждение оператора goto. Почти каждый автор считает своим святым долгом высказать свое отношение к этому оператору. На мой взгляд тут стоить добавить «неудавшийся», так как в трудах авторитетных для меня людей я не встречал обсуждения этого оператора. Я себя неудавшимся автором не считаю, но высказать свои мысли все же хочется. |  Девушка по имени Maki Goto. Единственный goto, небезразличный автору. |
| Хотя, если говорить честно, то я ничего конкретного-то и не могу сказать о несчастном goto. Я им просто никогда не пользовался. Не возникало надобности. Были, конечно, какие-то размышления. Например, если есть два вложенных оператора if, у которых должен быть один общий блок else, в случае когда вложенность нельзя равнозначно заменить на один оператор if, объединив условия через оператор &&. Еще, возможно, было бы интересно, если бы метки были типизированными и их можно было бы менять местами (или даже генерировать). | |
| Оператор goto не такой страшный, как его малюют. Он не нарушает идиому владения, не откладывает на run-time то, что можно сделать в compile-time, не создает глобальных точек доступа, и вообще, ведет себя довольно порядочно. Оператор goto это гораздо более порядочный инструмент чем, например, C-style cast, или «сишная» функция exit. | |
| Некоторые авторы все вселенские беды приписывают этому оператору. Они готовы сжечь его на костре как ведьму, если бы это было возможно. | |
| «Ругание» goto — совершенно бессмысленная трата времени и чернил. В программировании существует бесчисленное количество гораздо более серьезных проблем. | |
| Я могу сказать одно: хороший это оператор или плохой — я им никогда не пользовался, не пользуюсь и пользоваться им в ближайшее время не собираюсь. И совершенно от этого не страдаю. | |