История изменений
Исправление den73, (текущая версия) :
try-with-resources гвоздями прибит к интерфейсу closeable, а defer - это полноценная замена finally, но более удобная в использовании и пригодная в т.ч. для return в середине блока (т.е. без связи с исключениями). defer уже есть в go, вопросов не вызывает, соответствует моим давним хотелкам, для меня вопрос закрыт. Т.е. я здесь ничего не обсуждаю, а просто объясняю тем, кому defer не нравится, что нужно просто немного привыкнуть к нему и тогда он хорош. Как я вспомнил, в Дельфях я скорее всего делал вложенную процедуру без параметров, которая закрывала ресурс. А также была конструкция onStack(объект), которая использовала механизм подсчёта ссылок, впиленный в Дельфи ради OLE, который просто запускал объект.Free при выходе из лексической области видимости, содержащей вызов onStack.
Исправление den73, :
try-with-resources гвоздями прибит к интерфейсу closeable, а defer - это полноценная замена finally, но более удобная в использовании и пригодная в т.ч. для return в середине блока (т.е. без связи с исключениями). defer уже есть в go, вопросов не вызывает, соответствует моим давним хотелкам, для меня вопрос закрыт. Т.е. я здесь ничего не обсуждаю, а просто объясняю тем, кому defer не нравится, что нужно просто немного привыкнуть к нему и тогда он хорош. Как я вспомнил, в Дельфях я скорее всего делал вложенную процедуру без параметров, которая закрывала ресурс. А также была конструкция onStack, которая использовала механизм подсчёта ссылок, впиленный в Дельфи ради OLE, который просто запускал Free при выходе из области видимости.
Исходная версия den73, :
try-with-resources гвоздями прибит к интерфейсу closeable, а defer - это полноценная замена finally, но более удобная в использовании и пригодная в т.ч. для return в середине блока (т.е. без связи с исключениями). defer ужее есть в go, вопросов не вызывает, соответствует моим давним хотелкам, для меня вопрос закрыт. Как я вспомнил, в Дельфях я скорее всего делал вложенную процедуру без параметров, которая закрывала ресурс. А также была конструкция onStack, которая использовала механизм подсчёта ссылок, впиленный в Дельфи ради OLE, который просто запускал Free при выходе из области видимости.