Sobes.tech
Назад к вопросам
Junior — Middle
77

Можете объяснить принцип работы и применение конструкции defer в языке Go?

Компании, где спрашивали
Фабрика РешенийФабрика Решений
Rubytech
Самокат Тех
КуперКупер
Notix Games

Ответ от нейросети

sobes.tech AI

В Go ключевое слово defer используется для отложенного вызова функции — она будет выполнена в момент выхода из текущей функции, независимо от того, как именно происходит выход (нормально или из-за ошибки). Это удобно для освобождения ресурсов, закрытия файлов, разблокировки мьютексов и других операций очистки.

Пример:

func readFile(filename string) error {
    file, err := os.Open(filename)
    if err != nil {
        return err
    }
    defer file.Close() // файл закроется при выходе из функции

    // работа с файлом
    return nil
}

Таким образом, defer помогает писать более чистый и безопасный код, гарантируя выполнение важных завершающих действий.