Junior — Middle
Go tilida defer operatorining roli nima va uning afzalliklari qanday?
sobes.tech AI
AIdan javob
Оператор 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, независимо от того, как именно функция завершится.