LINUX.ORG.RU

История изменений

Исправление 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 при выходе из области видимости.