Ответ
Defer в Go — это ключевое слово, откладывающее выполнение функции до завершения окружающей функции. Оно гарантирует выполнение, даже если произойдет паника. Часто используется для освобождения ресурсов (закрытие файлов, разблокировка мьютексов и т.д.).
func readFile() {
file, err := os.Open("file.txt")
if err != nil {
log.Fatal(err)
}
defer file.Close() // Закроет файл при выходе из функции
// Работа с файлом
}
Особенности:
- Вызовы
deferвыполняются в порядке LIFO (последний добавленный — первый выполненный) - Аргументы функции вычисляются в момент вызова
defer, а не выполнения - Удобен для cleanup-операций, но не подходит для критичных к производительности участков кода
Видео-ответы
▶
Собеседование Senior Go-разработчика / Даниил Подольский, Владимир Балун - Антон Зиновьев
▶
Собеседование на Golang 300к
▶
НАВАЛИВАЮ КРИНЖА НА СОБЕСЕ В MTS DIGITAL GOLANG BACKEND
▶
Job interview на вакансию Golang Developer middle // Курс «Golang Developer. Professional»
▶
Mock-собеседование по Go от Team Lead Ozon
▶
Mock собеседование по Go (Junior) от Team Lead из Ozon
▶
Мок собес по iOS(Swift)