Назад к вопросам
Senior
10
Что означает ключевое слово defer в Go?
Компании, где спрашивали
.wrk
Ответ от нейросети
sobes.tech AI
В Go ключевое слово defer используется для отложенного выполнения функции — вызов, помеченный defer, будет выполнен после завершения окружающей функции, но перед её возвратом.
Это удобно для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и других операций очистки, гарантируя, что они произойдут даже при возникновении ошибок или паники.
Пример:
func readFile(filename string) error {
file, err := os.Open(filename)
if err != nil {
return err
}
defer file.Close() // файл закроется при выходе из функции
// работа с файлом
return nil
}
Таким образом, defer помогает писать более чистый и безопасный код, управляя жизненным циклом ресурсов.