Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

Да, в езика Go може да се използват няколко оператора defer в една функция. Всички отложени извиквания ще се изпълнят в обратен ред (LIFO) след като функцията приключи. Това е удобно за освобождаване на ресурси, затваряне на файлове, отключване на мютекси и др.

Пример:

func пример() {
    defer fmt.Println("Първи defer")
    defer fmt.Println("Втори defer")
    fmt.Println("В тялото на функцията")
}

// Изходът ще бъде:
// В тялото на функцията
// Втори defer
// Първи defer