Back to questions
Junior
192
Какую роль в языке Go играет конструкция defer?
Answer from AI
sobes.tech AI
В языке Go конструкция defer используется для отложенного выполнения функции — она будет вызвана в момент выхода из текущей функции, независимо от того, как именно происходит выход (нормально или из-за ошибки).
Это удобно для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и других операций очистки.
Пример:
func readFile() error {
file, err := os.Open("file.txt")
if err != nil {
return err
}
defer file.Close() // файл закроется при выходе из функции
// работа с файлом
return nil
}
Таким образом, defer помогает гарантировать выполнение важных завершающих действий, улучшая управление ресурсами и обработку ошибок.