|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Wladimir Mutel 2:464/36 12 Dec 2001 15:22:33 To : "Alexander Dilevsky" Subject : Re: goto нет в tcl -------------------------------------------------------------------------------- Alexander Dilevsky <dil@cea.ru> wrote: >> AD> Классический пример такого кода - функция, в нескольких местах > которой >> AD> присутствуют проверки нетривиальных условий (которые не влезают в >> AD> понятие switch), и условный переход в сторону конца функции, перед >> AD> которым надо выполнить еще пачку действий (например, очистку). Да, > это >> AD> моделируется путем флагов (и приводит к непонятности кода), либо > путем >> AD> дублирования пачки действий (что совсем плохо по понятным причинам), >> AD> может быть еще исключениями, если они есть в языке, хотя сюда >> AD> притягиваются за уши. В _данном_ случае goto короче, понятнее и >> AD> потенциально безопаснее. >> >> Блин. Выносишь сложные условия в отдельные функции, повторяющиеся куски >> кода туда же. Если функция длинее 25 строк -- разрезаешь ёё на части. > Hу знаете, выносить чистку локальных переменных функции в другую функцию > только из-за преданности структурному программированию - это уже слишком :) Какие это локальные переменные тебе надо чистить в tcl ? --- ifmail v.2.14.os-p7 * Origin: ISD (2:464/36@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/141954aa0ec74.html, оценка из 5, голосов 10
|