Junior — Middle
Може ли да има няколко оператора defer в една функция?
sobes.tech AI
Отговор от AI
Да, в езика Go може да се използват няколко оператора defer в една функция. Всички отложени извиквания ще се изпълнят в обратен ред (LIFO) след като функцията приключи. Това е удобно за освобождаване на ресурси, затваряне на файлове, отключване на мютекси и др.
Пример:
func пример() {
defer fmt.Println("Първи defer")
defer fmt.Println("Втори defer")
fmt.Println("В тялото на функцията")
}
// Изходът ще бъде:
// В тялото на функцията
// Втори defer
// Първи defer