Секция "Замыкания" в роадмапе по Swift переписана с нуля
Раньше она открывалась определением про "маленькую самостоятельную функцию", которая помнит комнату с синими стенами. Дальше восемь разделов с заголовками вроде "Что такое @non escaping?", мало блоков кода, три картинки на всю секцию.
Ни одного вопроса для самопроверки знаний, ни одного задания. Была ссылка на карточку, которая не совсем дружелюбная для новичка и без примеров из жизни, разжёвывания сложных кусков кода и материала.
Хотя замыкания - одна из сложных тем для понимания и изучения. Сбегающие, не сбегающие, автозамыкания. Сюда же и проблема call back hell, которая уместно проважает до async await, но про них в секции буквально немного.
Что внутри теперь:
1. Восемь тем: от "кусок кода можно положить в переменную" до того, во что замыкание превращается при сборке.
2. Тема про проектирование своего колбэка. Подпись как обещание тому, кто твою функцию позовёт. Result вместо двух опционалов: два опционала допускают четыре состояния при двух осмысленных.
3. Множество вопросов "Проверь себя" со свёрнутыми ответами для проверки знаний.
4. Восемь блоков "Пять минут за клавиатурой". Прочитал -> открыл редактор -> написал, не откладывая до конца секции.
5. Четыре домашки лесенкой: easy, easy+, medium, medium+.
6. Иллюстрации ставят рядом два состояния: что уносит с собой метод и что уносит функция, где ячейка одна на всех, где у каждого своя копия. Тем самым ещё легче и проще понять сложное, чем изобразительный пример.
Отложенная деаллокация раньше лежала отдельной подстраницей. Механизм теперь разбирает раздел "Память", здесь осталось то, что нужно, чтобы писать обработчики: список захвата и выбор между копией, [self] и слабой ссылкой.
✅ Секция здесь: ССЫЛКА
Проходил старую версию? Перечитывать подряд незачем.