Что такое defer? Каков порядок выполнения defer в коде с несколькими defer-ами?

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

Короткий ответ

Что ответить на собеседовании

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

Подробный разбор

Ответ с пояснениями

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

Пример:

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

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

    return nil
}

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

Практика в реальном времени

Подготовьтесь к следующему собеседованию

Interview Boost учитывает вакансию, резюме и технологии и помогает сформулировать ответ прямо во время интервью.

Начать подготовку