Junior
220
Какова цель использования конструкции defer в языке Go?
AI-дан жауап
sobes.tech AI
Конструкция defer используется для отложенного выполнения функции или метода. Запланированная функция будет выполнена непосредственно перед тем, как окружающая её функция вернёт управление.
Основные цели использования defer:
- Освобождение ресурсов: Гарантированное закрытие файлов, очистка сетевых соединений, освобождение блокировок мьютексов и других системных ресурсов, даже если в коде возникнет паника.
- Упрощение кода: Позволяет разместить код освобождения ресурса рядом с кодом его захвата, улучшая читаемость.
- Обработка паник: В комбинации с
recover,deferможно использовать для перехвата и обработки паник.
Пример освобождения файла:
// Пример отложенного закрытия файла
file, err := os.Open("example.txt")
if err != nil {
// обработка ошибки
return
}
defer file.Close() // Гарантированное закрытие файла при выходе из функции
// работа с файлом