Для отложенного действия при выходе из функции используют defer. Он привязан к функции, а не к произвольному блоку или каждой итерации цикла.
Какая конструкция языка Go позволяет выполнить действие при выходе из области видимости горутины/функции?
Для отложенного действия при выходе из функции используют defer. Он привязан к функции, а не к произвольному блоку или каждой итерации цикла.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для отложенного действия при выходе из функции используют defer. Он привязан к функции, а не к произвольному блоку или каждой итерации цикла.
Отложенные вызовы выполняются в обратном порядке и полезны для освобождения ресурсов. В горутине defer сработает при выходе из её функции, в том числе во время раскрутки panic. Но завершение main не ждёт остальных горутин, поэтому их defer могут не выполниться. Нельзя считать defer универсальным обработчиком любого прекращения процесса.