Sobes.tech
Назад к вопросам
Junior — Middle
81

Можно ли иметь несколько операторов defer внутри одной функции?

Компании, где спрашивали
AvitoAvito

Ответ от нейросети

sobes.tech AI

Да, в Go можно использовать несколько операторов defer внутри одной функции. Все отложенные вызовы будут выполнены в обратном порядке (LIFO) после того, как функция завершит выполнение. Это удобно для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и т.п.

Пример:

func example() {
    defer fmt.Println("Первый defer")
    defer fmt.Println("Второй defer")
    fmt.Println("В теле функции")
}

// Вывод будет:
// В теле функции
// Второй defer
// Первый defer