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

Что такое область видимости оператора Defer в Go и как она работает?

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

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

sobes.tech AI

В Go оператор defer используется для отложенного вызова функции — она будет выполнена после завершения окружающей функции, в которой объявлен defer.

Область видимости defer ограничена функцией, в которой он объявлен. Это значит, что отложенный вызов сработает только при выходе из текущей функции, даже если внутри есть несколько вложенных блоков.

Пример:

func example() {
    defer fmt.Println("Отложенный вызов")
    fmt.Println("Основной код")
}

// При вызове example() сначала выведется "Основной код", затем "Отложенный вызов".

Таким образом, defer удобно использовать для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и других операций, которые должны выполниться в конце функции, независимо от того, как она завершится.