Чек-лист самопроверки
Чек-лист самопроверки
- Что такое Swift и для каких платформ он предназначен?
- Кто разработал Swift и когда он был представлен?
- Как Swift связан с Objective-C и Cocoa?
- Поддерживает ли Swift кросскомпиляцию под Linux или Windows?
- Какие есть примитивные типы данных (
Int,Double,Bool,Character,String)? - В чём разница между
letиvar? - Как работает вывод типа в Swift?
- Что такое опционалы (
Optional) и зачем они нужны? - Как безопасно работать с опционалами (опциональная привязка,
guard let,if let)? - Что делает оператор принудительного развёртывания (
!) и когда его стоит избегать? - Что такое неявно развёрнутые опционалы (
Implicitly Unwrapped Optional)? - Как объявляются и вызываются функции?
- Что такое параметры с метками и без?
- Как работают значения по умолчанию и вариадические параметры?
- Что такое кортежи (
(Int, String)) и где они применяются? - Как работают замыкания и чем они отличаются от функций?
- Что такое трейлинговые замыкания?
- Как работают захваты значений в замыканиях (
capture list)? - Что такое структуры (
struct) и чем они отличаются от классов? - Что такое классы (
class) и какие особенности у них есть (наследование, deinit)? - Поддерживает ли Swift множественное наследование?
- Что такое инициализаторы (
init) и какие виды бывают? - Что такое фейловые инициализаторы (
init?)? - Как работает деинициализатор (
deinit)? - Что такое ARC и как он управляет памятью?
- Что такое сильные и слабые ссылки (
weak,unowned)? - Как избежать retain cycle в замыканиях и делегатах?
- Что такое перечисления (
enum) и чем они мощнее аналогов в других языках? - Как использовать ассоциированные значения в
enum? - Что такое сопоставление с образцом (
switch) и почему оно должно быть исчерпывающим? - Что такое протоколы (
protocol) и как они реализуются? - Может ли протокол содержать реализацию? (через extension)
- Что такое расширения (
extension) и для чего они используются? - Как добавить метод к существующему типу через расширение?
- Что такое обобщения (
generics) и как они записываются? - Как ограничить обобщённые типы с помощью протоколов?
- Что такое
where-клаузулы в обобщениях? - Как обрабатываются ошибки в Swift (
throw,try,catch,do)? - Что такое протокол
Errorи как создавать собственные ошибки? - Что такое свойства: вычисляемые, наблюдаемые (
willSet,didSet)? - Что такое ленивые свойства (
lazy)? - Как работают методы типа (
static,class)? - Что такое вложенные типы?
- Как организована система модулей в Swift?
- Что такое Swift Package Manager и как им пользоваться?
- Как писать unit-тесты (XCTest)?
- Что такое
@propertyWrapperи как он используется? - Что такое
Codableи как сериализовать объекты в JSON? - Как работает многопоточность в Swift (GCD,
async/awaitначиная с Swift 5.5)? - Какие инструменты отладки и анализа доступны в Xcode (Instruments, Memory Graph Debugger)?
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). История Swift — это история осознанного инженерного выбора — отказа от технического долга, накопленного десятилетиями использования Objective-C, и попытки построить с нуля язык, адекватно отвечающий… Swift — это язык программирования, разработанный Apple для создания высокопроизводительных, безопасных и выразительных приложений. С момента своего появления в 2014 году Swift превратился из… Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Набор советов, правил, принципов и обычаев в разработке на этом языке. Интерфейс класса служит контрактом между разработчиком класса и его пользователями. Он определяет, как взаимодействовать с объектом, не раскрывая механизмов работы. Foundation не является частью Swift как языка — это отдельный фреймворк, но он настолько прочно интегрирован, что считается полустандартным. На платформах Apple он поставляется вместе с ОС; на Linux… Кавычки, точки, запятые, скобки и прочие знаки препинания. Ключевое слово Значение Пример ---------------------------------- async Указание асинхронной функции func fetchData() async - Данные await Ожидание завершения асинхронной операции let Данные = await… Набор функций, которые включены в стандартную библиотеку языка. Типизация, набор правил определения типа данных значений языка. Особое внимание в Swift уделено безопасности при работе с целочисленными типами. Оператор получения остатка от деления () доступен только для целых чисел. Он возвращает остаток после целочисленного… Combine — реактивный фреймворк от Apple, позволяющий моделировать потоки данных как последовательности событий. Используется для обработки уведомлений, сетевых ответов, изменений в модели и…История языка Swift
Экосистема приложений на Swift
Что требуется знать перед началом изучения языка программирования Swift
Рекомендации по разработке на Swift
Объектно-ориентированное программирование в Swift
Основы языка Swift
Синтаксис и пунктуация в Swift
Ключевые слова языка Swift
Встроенные функции и методы Swift
Типы данных и объявление переменных
Управляющие конструкции и циклы в Swift
Фреймворки Apple и сторонние решения