Sobes.tech
Back to questions
Junior — Middle
82

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

Companies where asked
AvitoAvito

Answer from AI

sobes.tech AI

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

Пример:

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

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