Ключевое слово defer в Go используется для отложенного выполнения функции до момента выхода из текущей функции. Это удобно для гарантированного освобождения ресурсов, закрытия файлов, разблокировки мьютексов и других операций очистки.
Что такое defer? Каков порядок выполнения defer в коде с несколькими defer-ами?
Ключевое слово 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 упрощает управление ресурсами и делает код более читаемым и безопасным, предотвращая утечки.