Выбор ответа Junior Ошибки спрашивают часто обновлено

Порядок выполнения defer

Вопрос

В каком порядке выполнятся три defer в одной функции?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: В обратном порядке при выходе из области. defer откладывает блок до выхода из текущей области (функции, цикла, do), по любому пути: return, throw, break.

Варианты ответа

  1. В порядке объявления, сразу после строки с defer
  2. В порядке объявления при выходе из функции
  3. Только последний, остальные перезаписываются
  4. В обратном порядке при выходе из областиправильный ответ

Разбор

defer откладывает блок до выхода из текущей области (функции, цикла, do), по любому пути: return, throw, break. Несколько defer выполняются стеком, последний объявленный первым. Так ресурсы освобождаются в обратном порядке захвата. Ни один не теряется.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.