|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Serguei Khvatov 2:5020/175.2 10 Dec 2001 12:52:41 To : Andrey Khavryuchenko Subject : Re: goto нет в tcl -------------------------------------------------------------------------------- Mon Dec 10 2001 00:01, Andrey Khavryuchenko wrote to "Alexander Dilevsky": AK> From: Andrey Khavryuchenko <akhavr@kds.com.ua> AK> Alexander, AK> "AD" == Alexander Dilevsky wrote: AD>> Классический пример такого кода - функция, в нескольких местах которой AD>> присутствуют проверки нетривиальных условий (которые не влезают в AD>> понятие switch), и условный переход в сторону конца функции, перед AD>> которым надо выполнить еще пачку действий (например, очистку). Да, это AD>> моделируется путем флагов (и приводит к непонятности кода), либо путем AD>> дублирования пачки действий (что совсем плохо по понятным причинам), AD>> может быть еще исключениями, если они есть в языке, хотя сюда AD>> притягиваются за уши. В _данном_ случае goto короче, понятнее и AD>> потенциально безопаснее. AK> Блин. Выносишь сложные условия в отдельные функции, повторяющиеся куски AK> кода туда же. Если функция длинее 25 строк -- разрезаешь ёё на части. ...и передаёшь им всем гору параметров. Ещё можно обрамить функцию циклом, взгромоздить в него switch по переменной состояния. Только всё это через задницу. AK> Все функции, что не влазят на стандартный экран терминала are evil! Мне бы твои задачи :-) --- ifmail v.2.15 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/175.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3300051df659.html, оценка из 5, голосов 10
|