Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Max Ischenko                         2:5020/400     10 Dec 2001  14:19:59
 To : "Serguei Khvatov"
 Subject : Re: goto нет в tcl
 -------------------------------------------------------------------------------- 
 
 
  Serguei Khvatov wrote:
 
  AD>>> Классический пример такого кода - функция, в нескольких местах
  AD>>> которой присутствуют проверки нетривиальных условий (которые
  AD>>> не влезают в понятие switch), и условный переход в сторону
  AD>>> конца функции, перед которым надо выполнить еще пачку действий
  AD>>> (например, очистку). Да, это моделируется путем флагов (и
  AD>>> приводит к непонятности кода), либо путем дублирования пачки
  AD>>> действий (что совсем плохо по понятным причинам), может быть еще
  AD>>> исключениями, если они есть в языке, хотя сюда притягиваются
  AD>>> за уши. В _данном_ случае goto короче, понятнее и потенциально
  AD>>> безопаснее.
 
  AK>> Блин. Выносишь сложные условия в отдельные функции, повторяющиеся
  AK>> куски кода туда же. Если функция длинее 25 строк -- разрезаешь ёё
  AK>> на части.
 
 SK> ...и передаёшь им всем гору параметров. Ещё можно обрамить функцию
 SK> циклом, взгромоздить в него switch по переменной состояния. Только
 SK> всё это через задницу.
 
 Ладно гнать. Как раз на тикле можно сделать как угодно удобно.
 Все-таки почти лисп:
 proc temp-chdir {dir block} {
   set cd [pwd]
   cd $dir
   uplevel $block
   cd $cd
 }
 
 man n upvar
 man n uplevel
 -- 
 The first 90% of the code accounts for the first 90% of the development time.
 The remaining 10% of the code accounts for the other 90% of the development
 time.
 --- ifmail v.2.15dev5
  * Origin: somewhere in space... (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: goto нет в tcl   Alexander Dilevsky   10 Dec 2001 00:35:13 
 Re: goto нет в tcl   Andrey Khavryuchenko   10 Dec 2001 01:01:40 
 Re: goto нет в tcl   Alexander Dilevsky   10 Dec 2001 09:43:49 
 Re: goto нет в tcl   Andrey Khavryuchenko   10 Dec 2001 11:40:23 
 Re: goto нет в tcl   Vladimir Bormotov   10 Dec 2001 19:41:52 
 Re: goto нет в tcl   Andrey Khavryuchenko   11 Dec 2001 01:01:08 
 goto нет в tcl   Ilya S Slyzhnyak   13 Dec 2001 09:30:37 
 Re: goto нет в tcl   Serguei Khvatov   10 Dec 2001 12:52:41 
 Re: goto нет в tcl   Andrey Khavryuchenko   10 Dec 2001 14:01:36 
 Re[2]: goto нет в tcl   Ђ«ҐЄб ­¤а „ҐаЄ з   10 Dec 2001 20:47:24 
 Re: Re[2]: goto нет в tcl   Andrey Khavryuchenko   11 Dec 2001 01:01:09 
 Re: Re[2]: goto нет в tcl   Vladimir Bormotov   11 Dec 2001 06:21:54 
 Re[4]: goto нет в tcl   Ђ«ҐЄб ­¤а „ҐаЄ з   11 Dec 2001 14:28:47 
 Re: Re[4]: goto нет в tcl   Andrey Khavryuchenko   11 Dec 2001 15:22:12 
 Re: Re[4]: goto нет в tcl   Vladimir Bormotov   11 Dec 2001 23:41:39 
 Re: goto нет в tcl   Max Ischenko   10 Dec 2001 14:19:59 
 Re: goto нет в tcl   vitus@ice.ru   10 Dec 2001 11:32:14 
Архивное /ru.linux/16181d9afb2c8.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional