Senior
O que significa a palavra-chave defer em Go?
sobes.tech IA
Resposta da IA
Ключевое слово defer в Go используется для отложенного вызова функции — она будет выполнена после завершения окружающей функции, но перед её возвратом.
Это удобно для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и т.п., гарантируя выполнение даже при ошибках или панике.
Пример:
func readFile(filename string) error {
file, err := os.Open(filename)
if err != nil {
return err
}
defer file.Close() // Закроется при выходе из функции
// Работа с файлом
// ...
return nil
}
Таким образом, defer помогает писать чистый и безопасный код, управляя ресурсами аккуратно и предсказуемо.