Skip to content

Go: отложенные функции

Из этой темы ты узнаешь:

  • что такое отложенные функции;

  • зачем используют отложенные функции;

  • как написать код для отложенной функции.

Что такое defer

В Go есть полезная конструкция defer, которая позволяет выполнять функции в фазе выхода из текущей функции, пример показан на скриншоте.

Самое время протестировать код!

Вывод:

Такие функции называются отложенными. Каждая такая функция добавляется в стек отложенных функций и будет выполнена в порядке LIFO (Last In First Out).

Самое время протестировать код!

Использование отложенных функций достаточно распространено. Например:

  • закрытие дескриптора файла после работы;

  • возвращение соединения с базой данных в общий пул после чтения всех строк;

  • закрытие TCP-соединения после полного прочтения тела ответа.

Изучи следующие материалы по теме: