Sobes.tech
Назад к вопросам
Senior
3

Что означает ключевое слово defer в Go?

Компании, где спрашивали
amoCRMamoCRM

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

sobes.tech AI

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

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

Пример:

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

    // Работа с файлом
    // ...

    return nil
}

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