Senior
57
Was ist defer? Wie ist diese Geschichte aufgebaut und wann wird dieser Operator ausgeführt?
Unternehmen wurden gefragt
.wrk
Antwort von AI
sobes.tech KI
В языке Go оператор defer используется для отложенного выполнения функции — она будет вызвана после завершения окружающей функции, но перед её возвратом.
Это удобно для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и т.п., гарантируя, что нужный код выполнится даже при ошибках или ранних выходах.
Пример:
func readFile() error {
f, err := os.Open("file.txt")
if err != nil {
return err
}
defer f.Close() // Закроется в конце функции
// Работа с файлом
return nil
}
Выполнение defer происходит в обратном порядке добавления (стек вызовов), сразу после того, как функция, в которой объявлен defer, начинает завершаться, но до возврата управления вызывающему коду.