Общие вопросы
Смешанные вопросы по Swift.
Открыть разделБаза Hintsage
Язык Swift и разработка приложений в экосистеме Apple.
Темы раздела
Смешанные вопросы по Swift.
Открыть разделТипы, функции, структуры, классы и базовая семантика.
Открыть разделOptionals, value/reference semantics, casting и pattern matching.
Открыть разделProtocols, extensions, associated types и generic constraints.
Открыть разделCollections, closures, map/filter/reduce и sequences.
Открыть разделARC, reference cycles, weak/unowned и время жизни объектов.
Открыть разделasync/await, actors, tasks и безопасность данных.
Открыть разделthrows, Result, defer и моделирование ошибок.
Открыть разделПрактика
В публичной Swift-библиотеке набор вариантов ошибки может расшириться без обновления клиента. Как оформить разбор такой ошибки, чтобы новые варианты не ломали двоичную совместимость и не оставались незамеченными компилятором?
В блоке defer разработчик пытается выполнить return, чтобы досрочно завершить функцию: какое ограничение Swift сработает?
Очистка ресурса в defer сама может выбросить ошибку, пока функция уже распространяет исходную ошибку. Какой способ обработки сохранит исходную причину?
При выбрасывающем инициализаторе класса, завершившемся ошибкой, может ли вызывающий код получить частично созданный экземпляр?
В цепочке Result нужно преобразовать только успешное значение, сохранив исходную ошибку при failure: какой метод выбрать?
В функции с внешним defer обработчик catch регистрирует собственный defer: какой блок выполнится первым при выходе из catch?
Отмена Task сама по себе не прерывает async throws-функцию. Что должно произойти, чтобы она завершилась CancellationError?
Практическая ситуация: доменная ошибка должна отдавать локализованный текст через localizedDescription, сохраняя при этом типизированный разбор. Какой механизм Swift это обеспечивает?
После регистрации выбрасывающего замыкания в отложенный вызов сможет ли внешний do-catch перехватить ошибку, выброшенную позже?
Допустимо ли выполнять await внутри defer в async-функции?
Какие сбои следует моделировать через throws, а какие считать нарушением инварианта программы?
Показано 641–651 из 651