DevPrep

Все темы › Язык Swift

Что такое defer?

Junior PRO

Суть

defer { ... } — блок, который выполняется при любом выходе из текущей области видимости: обычный конец блока, return, throw, break, continue. Нужен для гарантированной очистки: закрыть файл, снять lock, завершить beginBackgroundTask, сбросить флаг isLoading.

func process() throws {
    print("open")
    defer { print("close 1") }
    defer { print("close 2") }
    print("work")
}
try process()
// open
// work
// close 2
// close 1

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store