Sobes.tech
Back to questions
Junior
194

Какую роль в языке Go играет конструкция defer?

Answer from AI

sobes.tech AI

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

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

Пример:

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

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

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