414 Предметный указатель
Ж Консоль 18
Консольные приложения (playground) 14
Жесты (gestures) 368 Консольный режим 18
Константа 49, 50, 54, 55, 56, 61, 68
З Контроллер представления (View Controller) 285,
Задача 278 287, 299
Замкнутый диапазон 109 Кортеж 81, 116, 202
Замыкание (closure) 90, 91, 95, 200, 201, 220, 266, Куча (Heap) 187
274, 347 Л
Замыкающие выражения 93
Заполнитель типа 99 Ленивые
Захват значений 92 ◊ вычисления 199, 201, 205
Значимые переменные 55 ◊ сохраняемые свойства 148
Линейная иерархия 171
И Локальные переменные 55, 78
Лямбда 90
Императивная программа 210 Лямбда-выражение (lambda expression) 205
Императивные языки 197 Лямбда-исчисление 205
Императивный
◊ подход 11, 203, 204, 209, 228 М
◊ стиль 209
Имя Манифест параллелизма для Swift 263
◊ заполнителя (placeholder) 251 Массивы 125
◊ параметра 79, 80, 83 Математические функции 55, 198, 203, 206–208
◊ переменной 52 Матрица 162, 223
◊ функции 74–76 ◊ смежности 130, 136
Инверсия приоритетов (priority inversion) 199 Мейнфреймы 18
Инициализатор 281 Мертвые точки 198
◊ по умолчанию 153 Метка параметра 79, 93
Инициализаторы 121, 148, 153, 160, 164, 168, 170, Метод Copy-On-Write (COW) 194
Методы 74
171, 177, 180, 194 ◊ в протоколе 242
◊ с параметрами 170 ◊ типа 156
◊ свойств 149 ◊ экземпляра класса 156
Инкапсуляция 145 Миксины (mixin) 262
Инспектор атрибутов 288, 293, 299, 316, 326 Многопоточная (параллельная) очередь
Инструмент REPL (Read Eval Print Loop) 32
Инструменты императивного программирования (concurrent) 274
Многопоточная система 209, 227
201 Многопоточность 199
Интерполяция строк 71 Многопоточность (concurrency) 273
Интерфейс Storyboard фреймворка UIKit 284 Многопоточность (multithreading) 264
Многопоточные
К ◊ задачи 198
◊ системы 187
Кабель Lightning-USB 15 Многопоточный механизм обработки данных 197
Карринг 96, 97 Многоядерные процессоры 197
Каррирование функций 96 Множества 125, 138–140, 142, 143
Каталог ресурсов проекта 298 Множественное наследование 164, 173
Кодировка ASCII 69, 70 Модальные представления 384
Коллекции 20, 112, 125 Модификаторы 316, 320, 334, 381
Комментарии 31 Модуль UIKit 76
Композиция Мутирующий метод 152, 182
◊ методов 221
◊ протоколов 244, 245 Н
◊ Композиция функций (function composition)
Наблюдатели свойств 151, 152, 246
206, 207 Набор Unicode 69
Компоненты вектора 223
Конкурентность (concurrency) 263
Предметный указатель 415
Навигатор проекта (Project Navigator) 287, 290, 298, Полиморфизм 145, 236, 249
322, 395 ◊ функций 86
Полузамкнутый диапазон 109
Наследование 144, 146, 164, 171, 173, 243, 254, 257 Полуоткрытый диапазон коллекции 237
◊ протоколов 243 Пользовательский протокол 237
Неучитываемые ссылки 194 Последовательная очередь (serial) 274
Неизменяемость 198 Поток (thread) 263
Неймановская архитектура 197 Предварительные просмотры (Previews) 317
Непрозрачный тип возврата (opaque return type) 321 Представления (Views) 8, 42
Неявное объявление переменной 52 Привязка (binding) 355
Нотация точки 158 Приоритет операций 60, 63
Простое (prime) число 216
О Пространство имен 146
Протокол 233, 234, 237, 238, 241, 243, 247, 253, 257
Обертывание свойств (property wrappers) 320 ◊ Collection 237
Область памяти Heap 55 ◊ Equatable 223, 236
Образ a по f 203 ◊ Hashable 139, 143
Обратные вызовы (callback) 266 ◊ Numeric 100, 236
Общие методы 156 ◊ OptionSet 139
Объединение множеств 139, 140 ◊ Sequence 229, 236, 237
Объектно-ориентированное программирование ◊ SequenceType 110
◊ SetAlgebra 139
(ООП) 144, 197, 233, 234 ◊ SignedNumeriс 100
Объекты первого класса 227 ◊ UserProtocolTwo 242
Объявление функции 74 Протокольно-ориентированное программирование
Одномерные массивы 125, 129
Окно настроек проекта 287 (ПОП) 145, 234, 258
Операнды арифметического выражения 61 Протокольно-ориентированный язык
Оперативная память (RAM) 197
Оператор программирования 233
◊ закрытого диапазона 122 Процесс (process) 263
◊ одностороннего диапазона 122 Псевдоним типа 54
◊ полуоткрытого диапазона 122 Пустое множество 143
◊ присваивания 49
Операции сравнения 60 Р
Операция инкремента 66
Опциональный тип 27 Развертывание 27
◊ данных 71 Разность множеств 141
Отложенные вычисления 199 Разработчик интерфейса (Interface Builder) 8, 18,
Очередь (queue) 273
284, 285, 320
П Раскадровки (Storyboards) 8, 18, 285, 288, 320
Расширение протокола 247, 248
Память Heap memory 84, 85 Расширения 183
Параллелизм 17, 263 ◊ протоколов 262
Параллельный код 264 Редактор кода 8, 20, 39, 290, 292, 322
Параметры in-out 83, 84, 85, 86, 87 Режим масштабирования (zoom) 372
Перегрузка функций 86 Рекурсивная функция 208, 209, 214, 217
Переменная 49–52, 54, 55, 62, 68, 72 Рекурсивно определенная функция 208
Переопределение 166 Рекурсивный вызовов функций 199
◊ метода 166 Рекурсии 187
◊ свойства 167
Пересечение множеств 139, 140 С
Перетаскивание элементов (Drag and drop) 316
Перечисления 118, 119, 121, 139 Сабскрипты 160
Платформа Сборщик мусора 187, 190
◊ Cocoa 284 Светлый режим Xcode 23
◊ Cocoa Touch 285 Свойство 136
Подкласс 164 ◊ в протоколе 238, 239, 241
Позднее связывание 274 ◊ полиморфизма 57
Связные списки 136
416 Предметный указатель
Связывание (binding) 320 Ф
Сервис GitHub 229, 230
Сильные ссылки 192, 194 Фактические параметры 75, 78
Симметрическая разность множеств 141 Факториал 210
Симулятор 17, 42, 296, 301, 328 Физическая параллельность 263
Синхронное выполнение 266 Форма (Form) 353
Скроллинг 378 Формальные параметры 74, 75
Слабая связь 246 Форматы изображения 358
Слабые ссылки 193, 194 Фреймворк 8, 18, 22
Словари 113, 125, 134–136 ◊ Cocoa 26
Составное число 216 ◊ Foundation 76
Состояния (@State) 320 Функции
Сохраняемые свойства 148 ◊ высшего порядка (higher-order functions) 200, 227
Списки смежности 136, 137 ◊ первого порядка (first-class functions) 200
Спрайты 24 Функциональная программа 202, 208–210, 213, 215,
Ссылочная прозрачность (referential trancparency)
219, 226, 227
205 Функциональное программирование 198–201, 205,
Ссылочные
◊ переменные 55 207, 208, 210, 227, 228, 231
◊ типы 186, 190 Функциональные программы 224
Стандартная библиотека Swift 234, 236, 237 Функциональный
Стандартный протокол 234 ◊ подход 198, 201, 204, 210, 227–230
Статическая типизация 51 ◊ язык 198, 199
Статические свойства 238 Функция 74, 86–90
Стек 187, 331 ◊ Аккермана 212, 213
Стратегия MVC (Model–View–Controller) 19 ◊ из А в В 203
Строки 68
Структурный параллелизм 281 Х
Структуры 177
Суперкласс 164 Хвостовое замыкание 228
Холст (Сanvas) 39, 316, 320, 325
Т Хорошо определенная функция 208
Темный режим Xcode (Dark Mode) 23, 316 Ц
Терминал 32
Технология Центральный процессор (CPU) 197
◊ SwiftUI 49 Цикл 108, 109
◊ выводимости типов 50 ◊ с постусловием 115
Типы ◊ с предусловием 114
◊ значений 187, 190 ◊ сильных ссылок 192
◊ переменных 53
Точечная нотация 158, 183, 185 Ч
Точечный синтаксис 148, 183
Чистые (pure) функции 204
У
Ш
Укороченные операторы 59
Унарная операция 66 Шаблон Command Line Tool 89, 114, 123
Унарный оператор 66 Шаблоны 24
Универсальные функции 98
Управляющие операторы 101 Э
Уровни доступа 186
Условия гонок (race conditions) 198 Элементы вектора 223
Условный Элементы управления 316, 345
◊ оператор 101, 105
◊ тернарный оператор 104 Я
Уступка потока (yielding the thread) 268
Утечка памяти 192 Явное объявление переменной 52
Утиный полиморфизм 98 Язык моделирования UML 146