Назад к вопросам
Фабрика Решений
Купер
Junior — Middle
77
Можете объяснить принцип работы и применение конструкции defer в языке Go?
Компании, где спрашивали
Rubytech
Самокат Тех
Notix Games
Ответ от нейросети
sobes.tech AI
В Go ключевое слово defer используется для отложенного вызова функции — она будет выполнена в момент выхода из текущей функции, независимо от того, как именно происходит выход (нормально или из-за ошибки). Это удобно для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и других операций очистки.
Пример:
func readFile(filename string) error {
file, err := os.Open(filename)
if err != nil {
return err
}
defer file.Close() // файл закроется при выходе из функции
// работа с файлом
return nil
}
Таким образом, defer помогает писать более чистый и безопасный код, гарантируя выполнение важных завершающих действий.