Назад к вопросам
Самокат
Junior — Middle
81
Что такое область видимости оператора Defer в Go и как она работает?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
В Go оператор defer используется для отложенного вызова функции — она будет выполнена после завершения окружающей функции, в которой объявлен defer.
Область видимости defer ограничена функцией, в которой он объявлен. Это значит, что отложенный вызов сработает только при выходе из текущей функции, даже если внутри есть несколько вложенных блоков.
Пример:
func example() {
defer fmt.Println("Отложенный вызов")
fmt.Println("Основной код")
}
// При вызове example() сначала выведется "Основной код", затем "Отложенный вызов".
Таким образом, defer удобно использовать для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и других операций, которые должны выполниться в конце функции, независимо от того, как она завершится.