Чем defer отличается от defer в Go-разработке?

GoJunior+Functions, Errors and IdiomsТеорияfunctions_errors_and_idiomsdefer_defergolang_developer

Что хотят услышать интервьюеры:

Суть: defer нужно рассматривать через конкретное поведение и границы применения, а сравнение с defer помогает показать trade-off, а не просто знание терминов.

Ответ:

defer

откладывает вызов функции до выхода из текущей функции и часто применяется для cleanup.

Пример:

f, _ := os.Open(path); defer f.Close()

Практический акцент: Сравнительные вопросы часто используют, чтобы проверить не заучивание, а инженерное мышление.

Типичная ошибка: Главная ошибка — отвечать на сравнение абстрактно. Нужно показать, где один вариант безопаснее, проще или производительнее, и упомянуть риск: ставить defer в большом цикле и откладывать освобождение ресурсов до конца функции.

Как отвечать на собеседовании: На интервью формулируйте различие через применение в реальном backend-коде: читаемость, тестируемость, latency, память и сопровождение.

Источники

Похожие вопросы