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