Junior — Middle
Wat is de rol van de defer-operator in de Go-taal en wat zijn de voordelen?
sobes.tech AI
Antwoord van AI
Оператор defer в языке Go используется для отложенного выполнения функции до момента выхода из окружающей функции (обычно для освобождения ресурсов или выполнения завершающих действий).
Преимущества defer:
- Гарантирует выполнение кода в конце функции, даже если функция завершается с ошибкой или паникой.
- Улучшает читаемость кода, позволяя писать освобождение ресурсов рядом с их выделением.
- Позволяет избежать дублирования кода очистки в разных местах функции.
Пример:
func readFile() error {
file, err := os.Open("file.txt")
if err != nil {
return err
}
defer file.Close() // файл закроется при выходе из функции
// работа с файлом
return nil
}
Здесь file.Close() будет вызван автоматически при выходе из readFile, независимо от того, как именно функция завершится.