История изменений
Исправление alysnix, (текущая версия) :
как оно вообще будет взаимодействовать с goto?
если обойти defer используя goto, то ничего не отложится. с одной стороны это выглядит как «ошибка», в другой - вполне можно программировать и так. типа хочу чтобы defer был или не был в зависимости от ситуации.
недостаток defer в том, что он никак не связан лексически и даже логически с тем кодом, который собираются терминировать. и вполне можно сломать уже имеющийся defer, меняя код. то есть нужно особо внимательно менять код. и смотреть есть ли defer’ы(их может быть много в одном блоке) и что они там делают.
Исходная версия alysnix, :
как оно вообще будет взаимодействовать с goto?
если обойти defer используя goto, то ничего не отложится. с одной стороны это выглядит как «ошибка», в другой - вполне можно программировать и так. типа хочу чтобы defer был или не был в зависимости от ситуации.
недостаток defer в том, что он никак не связал лексически и даже логически с тем кодом, который собираются терминировать. и вполне можно сломать уже имеющийся defer, меняя код. то есть нужно особо внимательно менять код. и смотреть есть ли defer’ы(их может быть много в одном блоке) и что они там делают.