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