[Moscow.pm] Запутался

Alessandro Gorohovski an.gorohovski на gmail.com
Вт Окт 2 13:33:13 PDT 2012


Ivan Petrov <i.petro.77.00 на gmail.com> писал(а) в своём письме Tue, 02 Oct  
2012 23:06:02 +0300:

>>>> Интересно, а чем ему goto не угодили?
>>>> и чем они должны быть хуже условных переходов или return?
>>>
>>>> Есть ли внятная мотивировка?
>>>
>>> вообще goto очень удобен в случаях когда идет последовательная
>>> инициализация (выделение) ресурсов и в случае если надо сделать откат:
>
>> А что значит удобно?
>
> то что все другие варианты более громоздки и менее читабельны

Спасибо.
Лично у меня нет аллергии на goto,
единственный недостаток --- надо придумывать метки :)

>>> sub init() {
>>>    unless (do_something1) { goto rollback_something1 }
>>>    unless (do_something2) { goto rollback_something2 }
>>>    unless (do_something3) { goto rollback_something3 }
>>>    unless (do_something4) { goto rollback_something4 }
>>>    return;
>>>
>>>    rollback_something4:
>>>        rollback_something4();
>>>    rollback_something3:
>>>        rollback_something3();
>>>    rollback_something2:
>>>        rollback_something2();
>>>    rollback_something1:
>>>        rollback_something1();
>>> }
>>>
>>> Если посмотреть скажем в исходники ядра линукс (не перл конечно, но
>>> штукенция серьезная), то там таких конструкций чуть поменьше чем в
>>> каждом модуле встречается :)
>


-- 
ANG


Подробная информация о списке рассылки Moscow-pm