Back to questions
Avito
Junior — Middle
82
Можно ли иметь несколько операторов defer внутри одной функции?
Companies where asked
Answer from AI
sobes.tech AI
Да, в Go можно использовать несколько операторов defer внутри одной функции. Все отложенные вызовы будут выполнены в обратном порядке (LIFO) после того, как функция завершит выполнение. Это удобно для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и т.п.
Пример:
func example() {
defer fmt.Println("Первый defer")
defer fmt.Println("Второй defer")
fmt.Println("В теле функции")
}
// Вывод будет:
// В теле функции
// Второй defer
// Первый defer