Хорстман К. - Scala для нетерпеливых, 2-е издание (2017)
Второе издание было обновлено до поддержки версии Scala 2.12 и демонстрирует самые современные приемы использования языка. В него было добавлено описание последних нововведений в Scala, включая интерполяцию строк, динамический вызов, неявные классы и объекты Future. Язык Scala обладает весьма обширными возможностями, но вы сможете эффективно пользоваться им, даже не зная их все. В этой книге приводится достаточно информации, чтобы вы могли начать работу с простыми и компактными фрагментами кода.
Написанная для опытных программистов на Java, C++ и C#, которые желают освоить функциональное программирование или язык Scala, книга в сжатой форме знакомит с основными идеями и приемами программирования, что позволяет быстро осваивать их и применять на практике. Это введение в язык особенно хорошо подходит для нетерпеливых пользователей, желающих изучать основы Scala и тут же воплощать новые знания в код. Автор не стремился охватить все возможности языка и не заставит вас продираться через длинные, надуманные примеры кода. Все примеры были подобраны с особой тщательностью и помогут вам быстро пройти от новичка до эксперта.
Предисловие к первому изданию................................... 15
Вступление........................................................................... 17
Об авторе.............................................................................. 19
Глава 1. Основы................................................................... 20
1.1..Интерпретатор.Scala......................................................... 20
1.2..Объявление.значений.и.переменных................................. 23
1.3..Часто.используемые.типы.................................................. 25
1.4..Арифметика.и.перегрузка.операторов............................... 26
1.5..Вызов.функций.и.методов.................................................. 28
1.6..Метод.apply....................................................................... 29
1.7..Scaladoc............................................................................ 31
Упражнения.............................................................................. 35
Глава 2. Управляющие структуры и функции............... 37
2.1..Условные.выражения......................................................... 38
2.2..Завершение.инструкций.................................................... 40
2.3..Блочные.выражения.и.присваивание................................. 41
2.4..Ввод.и.вывод..................................................................... 42
2.5..Циклы................................................................................ 44
2.6..Расширенные.циклы.for..................................................... 45
2.7..Функции............................................................................ 47
2.8..Аргументы.по.умолчанию.и.именованные.аргументы...L1..... 48
2.9..Переменное.количество.аргументов...L1.............................. 49
2.10..Процедуры....................................................................... 507
Содержание
2.11..Ленивые.значения...L1....................................................... 51
2.12..Исключения..................................................................... 52
Упражнения.............................................................................. 55
Глава 3. Работа с массивами........................................... 57
3.1..Массивы.фиксированной.длины........................................ 58
3.2..Массивы.переменной.длины:.буферы................................ 58
3.3..Обход.массивов.и.буферов................................................ 59
3.4..Преобразование.массивов................................................ 60
3.5..Типичные.алгоритмы......................................................... 62
3.6..Расшифровываем.Scaladoc............................................... 64
3.7..Многомерные.массивы...................................................... 66
3.8..Взаимодействие.с.Java...................................................... 66
Упражнения.............................................................................. 68
Глава 4. Ассоциативные массивы и кортежи............... 70
4.1..Конструирование.ассоциативных.массивов....................... 71
4.2..Доступ.к.значениям.в.ассоциативных.массивах................. 72
4.3..Изменение.значений.в.ассоциативных.массивах............... 72
4.4..Обход.элементов.ассоциативных.массивов....................... 74
4.5..Сортированные.ассоциативные.массивы.......................... 74
4.6..Взаимодействие.с.Java...................................................... 75
4.7..Кортежи............................................................................. 76
4.8..Функция.zip........................................................................ 77
Упражнения.............................................................................. 77
Глава 5. Ассоциативные массивы и кортежи............... 79
5.1..Простые.классы.и.методы.без.параметров........................ 80
5.2..Свойства.с.методами.доступа............................................ 81
5.3..Свойства.только.с.методами.чтения.................................. 83
5.4..Приватные.поля.объектов.................................................. 85
5.5..Свойства.компонентов...L1.................................................. 86
5.6..Дополнительные.конструкторы.......................................... 87
5.7..Главный.конструктор.......................................................... 88
5.8..Вложенные.классы...L1........................................................ 91
Упражнения.............................................................................. 938
Содержание
Глава 6. Объекты................................................................. 96
6.1..Объекты-одиночки............................................................. 96
6.2..Объекты-компаньоны........................................................ 97
6.3..Объекты,.расширяющие.классы.или.трейты...................... 98
6.4..Метод.apply....................................................................... 99
6.5..Объект,.представляющий.приложение..............................100
6.6..Перечисления...................................................................101
Упражнения.............................................................................103
Глава 7. Пакеты и импортирование...............................104
7.1..Пакеты..............................................................................105
7.2..Правила.видимости..........................................................106
7.3..Объявления.цепочек.пакетов............................................108
7.4..Объявления.в.начале.файла..............................................108
7.5..Объекты.пакетов...............................................................109
7.6..Видимость.внутри.пакетов................................................110
7.7..Импортирование..............................................................111
7.8..Импортирование.возможно.в.любом.месте......................112
7.9..Переименование.и.сокрытие.членов.................................112
7.10..Неявный.импорт.............................................................113
Упражнения.............................................................................113
Глава 8. Наследование.....................................................115
8.1..Наследование.классов......................................................115
8.2..Переопределение.методов...............................................116
8.3..Проверка.и.приведение.типов..........................................117
8.4..Защищенные.поля.и.методы.............................................118
8.5..Создание.суперклассов....................................................118
8.6..Переопределение.полей...................................................120
8.7..Анонимные.подклассы......................................................121
8.8..Абстрактные.классы.........................................................122
8.9..Абстрактные.поля.............................................................122
8.10..Порядок.создания.и.опережающие.определения...L3........123
8.11..Иерархия.наследования.в.Scala......................................125
8.12..Равенство.объектов...L1....................................................128
8.13..Классы-значения...L2........................................................129
Упражнения.............................................................................1319
Содержание
Глава 9. Файлы и регулярные выражения....................133
9.1..Чтение.строк.....................................................................134
9.2..Чтение.символов..............................................................134
9.3..Чтение.лексем.и.чисел......................................................135
9.4..Чтение.из.URL.и.других.источников...................................136
9.5..Чтение.двоичных.файлов..................................................136
9.6..Запись.в.текстовые.файлы................................................136
9.7..Обход.каталогов...............................................................137
9.8..Сериализация...................................................................137
9.9..Управление.процессами...А2..............................................138
9.10..Регулярные.выражения...................................................141
9.11..Группы.в.регулярных.выражениях...................................142
Упражнения.............................................................................143
Глава 10. Трейты................................................................145
10.1..Почему.не.поддерживается.множественное..
наследование?........................................................................146
10.2..Трейты.как.интерфейсы..................................................148
10.3..Трейты.с.конкретными.реализациями.............................149
10.4..Объекты.с.трейтами........................................................150
10.5..Многоуровневые.трейты.................................................150
10.6..Переопределение.абстрактных.методов.в.трейтах..........152
10.7..Трейты.с.богатыми.интерфейсами..................................153
10.8..Конкретные.поля.в.трейтах.............................................154
10.9..Абстрактные.поля.в.трейтах............................................155
10.10..Порядок.конструирования.трейтов...............................156
10.11..Инициализация.полей.трейтов......................................158
10.12..Трейты,.наследующие.классы.......................................160
10.13..Собственные.типы...L2....................................................161
10.14..За.кулисами..................................................................162
Упражнения.............................................................................164
Глава 11. Операторы.........................................................167
11.1..Идентификаторы............................................................168
11.2..Инфиксные.операторы....................................................169
11.3..Унарные.операторы........................................................17010
Содержание
11.4..Операторы.присваивания...............................................171
11.5..Приоритет......................................................................171
11.6..Ассоциативность............................................................172
11.7..Методы.apply.и.update....................................................173
11.8..Экстракторы...L2...............................................................174
11.9..Экстракторы.с.одним.аргументом..
или.без.аргументов...L2.............................................................177
11.10..Метод.unapplySeq...L2.....................................................177
11.11..Динамический.вызов...L2................................................178
Упражнения.............................................................................182
Глава 12. Функции высшего порядка............................185
12.1..Функции.как.значения.....................................................186
12.2..Анонимные.функции.......................................................187
12.3..Функции.с.функциональными.параметрами....................188
12.4..Вывод.типов...................................................................189
12.5..Полезные.функции.высшего.порядка..............................190
12.6..Замыкания......................................................................192
12.7..Преобразование.функций.в.SAM.....................................193
12.8..Карринг..........................................................................194
12.9..Абстракция.управляющих.конструкций...........................196
12.10..Выражение.return..........................................................198
Упражнения.............................................................................199
Глава 13. Коллекции.........................................................201
13.1..Основные.трейты.коллекций...........................................202
13.2..Изменяемые.и.неизменяемые.коллекции.......................204
13.3..Последовательности.......................................................205
13.4..Списки............................................................................207
13.5..Множества......................................................................208
13.7..Операторы.добавления.и.удаления.элементов...............210
13.7..Общие.методы................................................................212
13.8..Функции.map.и.flatMap....................................................214
13.9..Функции.reduce,.fold.и.scan...А3........................................216
13.10..Функция.zip...................................................................220
13.11..Итераторы....................................................................22211
Содержание
13.12..Потоки...А3......................................................................223
13.13..Ленивые.представления...А3...........................................225
13.14..Взаимодействие.с.коллекциями.Java............................226
13.15..Параллельные.коллекции..............................................227
Упражнения.............................................................................229
Глава 14. Сопоставление с образцом
и case-классы.....................................................................232
14.1..Лучше,.чем.switch............................................................233
14.2..Ограничители.................................................................234
14.3..Переменные.в.образцах..................................................235
14.4..Сопоставление.c.типами.................................................236
14.5..Сопоставление.с.массивами,.списками.и.кортежами......237
14.6..Экстракторы...................................................................238
14.7..Образцы.в.объявлениях.переменных..............................239
14.8..Образцы.в.выражениях.for..............................................240
14.9..Case-классы...................................................................241
14.10..Метод.copy.и.именованные.параметры.........................242
14.11..Инфиксная.нотация.в.предложениях.case.....................243
14.12..Сопоставление.с.вложенными.структурами..................244
14.13..Так.ли.необходимы.case-классы?..................................245
14.14..Запечатанные.классы...................................................247
14.15..Имитация.перечислений...............................................247
14.16..Тип.Option.....................................................................248
14.17..Частично.определенные.функции...L2.............................249
Упражнения.............................................................................251
Глава 15. Аннотации..........................................................254
15.1..Что.такое.аннотации?......................................................255
15.2..Что.можно.аннотировать?...............................................256
15.3..Аргументы.аннотаций.....................................................257
15.4..Реализация.аннотаций....................................................258
15.5..Аннотации.для.элементов.Java........................................259
15.6..Аннотации.для.оптимизации...........................................262
15.7..Аннотации.ошибок.и.предупреждений............................267
Упражнения.............................................................................26912
Содержание
Глава 16. Обработка XML.................................................271
16.1..Литералы.XML.................................................................272
16.2..Узлы.XML........................................................................273
16.3..Атрибуты.элементов.......................................................274
16.4..Встроенные.выражения..................................................276
16.5..Выражения.в.атрибутах...................................................277
16.6..Необычные.типы.узлов....................................................278
16.7..XPath-подобные.выражения............................................279
16.8..Сопоставление.с.образцом.............................................281
16.9..Модификация.элементов.и.атрибутов.............................282
16.10..Трансформация.XML.....................................................283
16.11..Загрузка.и.сохранение..................................................284
16.12..Пространства.имен.......................................................287
Упражнения.............................................................................288
Глава 17. Объекты Future.................................................290
17.1..Запуск.асинхронных.заданий.в.объектах.Future...............291
17.2..Ожидание.результатов....................................................294
17.3..Класс.Try.........................................................................295
17.4..Обратные.вызовы...........................................................296
17.5..Комбинирование.заданий.в.объектах.Future....................297
17.6..Другие.преобразования.объектов.Future.........................300
17.7..Методы.объекта.Future....................................................302
17.8..Объекты.Promise.............................................................304
17.9..Контексты.выполнения...................................................306
Упражнения.............................................................................307
Глава 18. Параметризованные типы.............................310
18.1..Обобщенные.классы.......................................................311
18.2..Обобщенные.функции.....................................................312
18.3..Границы.изменения.типов...............................................312
18.4..Границы.представления..................................................314
18.5..Границы.контекста..........................................................314
18.6..Границы.контекста.ClassTag............................................315
18.7..Множественные.границы................................................316
17.8..Ограничение.типов...L3.....................................................31613
Содержание
18.9..Вариантность..................................................................318
18.10..Ко-.и.контравариантные.позиции..................................320
18.11..Объекты.не.могут.быть.обобщенными...........................322
18.12..Подстановочный.символ...............................................323
Упражнения.............................................................................324
Глава 19. Дополнительные типы....................................326
19.1..Типы-одиночки...............................................................327
19.2..Проекции.типов..............................................................329
19.3..Цепочки..........................................................................330
19.4..Псевдонимы.типов..........................................................331
19.5..Структурные.типы...........................................................332
19.6..Составные.типы..............................................................332
19.7..Инфиксные.типы.............................................................334
19.8..Экзистенциальные.типы.................................................334
19.9..Система.типов.языка.Scala.............................................336
19.10..Собственные.типы........................................................337
19.11..Внедрение.зависимостей.............................................338
19.12..Абстрактные.типы...L3.....................................................341
19.13..Родовой.полиморфизм...L3.............................................343
19.14..Типы.высшего.порядка...L3..............................................346
Упражнения.............................................................................350
Глава 20. Парсинг..............................................................353
20.1..Грамматики....................................................................354
20.2..Комбинирование.операций.парсера...............................356
20.3..Преобразование.результатов.парсинга...........................358
20.4..Отбрасывание.лексем.....................................................360
20.5..Создание.деревьев.синтаксического.анализа.................361
20.6..Уход.от.левой.рекурсии...................................................361
20.7..Дополнительные.комбинаторы.......................................363
20.8..Уход.от.возвратов...........................................................366
20.9..Packrat-парсеры.............................................................367
20.10..Что.такое.парсеры?.......................................................368
20.11..Парсеры.на.основе.регулярных.выражений...................369
20.12..Парсеры.на.основе.лексем............................................37014
Содержание
20.13..Обработка.ошибок........................................................372
Упражнения.............................................................................374
Глава 21. Неявные параметры и преобразования.....376
21.1..Неявные.преобразования...............................................377
21.2..Использование.неявных.преобразований..
для.расширения..существующих.библиотек............................378
21.3..Импорт.неявных.преобразований...................................379
21.4..Правила.неявных.преобразований..................................381
21.5..Неявные.параметры........................................................382
21.6..Неявные.преобразования.с.неявными.параметрами.......383
21.7..Границы.контекста..........................................................385
21.8..Классы.типов..................................................................386
21.9..Неявный.параметр.подтверждения.................................389
21.10..Аннотация[email protected]
21.11..Тайна.CanBuildFrom.......................................................391
Упражнения.............................................................................393
Предметный указатель.....................................................395
Вступление........................................................................... 17
Об авторе.............................................................................. 19
Глава 1. Основы................................................................... 20
1.1..Интерпретатор.Scala......................................................... 20
1.2..Объявление.значений.и.переменных................................. 23
1.3..Часто.используемые.типы.................................................. 25
1.4..Арифметика.и.перегрузка.операторов............................... 26
1.5..Вызов.функций.и.методов.................................................. 28
1.6..Метод.apply....................................................................... 29
1.7..Scaladoc............................................................................ 31
Упражнения.............................................................................. 35
Глава 2. Управляющие структуры и функции............... 37
2.1..Условные.выражения......................................................... 38
2.2..Завершение.инструкций.................................................... 40
2.3..Блочные.выражения.и.присваивание................................. 41
2.4..Ввод.и.вывод..................................................................... 42
2.5..Циклы................................................................................ 44
2.6..Расширенные.циклы.for..................................................... 45
2.7..Функции............................................................................ 47
2.8..Аргументы.по.умолчанию.и.именованные.аргументы...L1..... 48
2.9..Переменное.количество.аргументов...L1.............................. 49
2.10..Процедуры....................................................................... 507
Содержание
2.11..Ленивые.значения...L1....................................................... 51
2.12..Исключения..................................................................... 52
Упражнения.............................................................................. 55
Глава 3. Работа с массивами........................................... 57
3.1..Массивы.фиксированной.длины........................................ 58
3.2..Массивы.переменной.длины:.буферы................................ 58
3.3..Обход.массивов.и.буферов................................................ 59
3.4..Преобразование.массивов................................................ 60
3.5..Типичные.алгоритмы......................................................... 62
3.6..Расшифровываем.Scaladoc............................................... 64
3.7..Многомерные.массивы...................................................... 66
3.8..Взаимодействие.с.Java...................................................... 66
Упражнения.............................................................................. 68
Глава 4. Ассоциативные массивы и кортежи............... 70
4.1..Конструирование.ассоциативных.массивов....................... 71
4.2..Доступ.к.значениям.в.ассоциативных.массивах................. 72
4.3..Изменение.значений.в.ассоциативных.массивах............... 72
4.4..Обход.элементов.ассоциативных.массивов....................... 74
4.5..Сортированные.ассоциативные.массивы.......................... 74
4.6..Взаимодействие.с.Java...................................................... 75
4.7..Кортежи............................................................................. 76
4.8..Функция.zip........................................................................ 77
Упражнения.............................................................................. 77
Глава 5. Ассоциативные массивы и кортежи............... 79
5.1..Простые.классы.и.методы.без.параметров........................ 80
5.2..Свойства.с.методами.доступа............................................ 81
5.3..Свойства.только.с.методами.чтения.................................. 83
5.4..Приватные.поля.объектов.................................................. 85
5.5..Свойства.компонентов...L1.................................................. 86
5.6..Дополнительные.конструкторы.......................................... 87
5.7..Главный.конструктор.......................................................... 88
5.8..Вложенные.классы...L1........................................................ 91
Упражнения.............................................................................. 938
Содержание
Глава 6. Объекты................................................................. 96
6.1..Объекты-одиночки............................................................. 96
6.2..Объекты-компаньоны........................................................ 97
6.3..Объекты,.расширяющие.классы.или.трейты...................... 98
6.4..Метод.apply....................................................................... 99
6.5..Объект,.представляющий.приложение..............................100
6.6..Перечисления...................................................................101
Упражнения.............................................................................103
Глава 7. Пакеты и импортирование...............................104
7.1..Пакеты..............................................................................105
7.2..Правила.видимости..........................................................106
7.3..Объявления.цепочек.пакетов............................................108
7.4..Объявления.в.начале.файла..............................................108
7.5..Объекты.пакетов...............................................................109
7.6..Видимость.внутри.пакетов................................................110
7.7..Импортирование..............................................................111
7.8..Импортирование.возможно.в.любом.месте......................112
7.9..Переименование.и.сокрытие.членов.................................112
7.10..Неявный.импорт.............................................................113
Упражнения.............................................................................113
Глава 8. Наследование.....................................................115
8.1..Наследование.классов......................................................115
8.2..Переопределение.методов...............................................116
8.3..Проверка.и.приведение.типов..........................................117
8.4..Защищенные.поля.и.методы.............................................118
8.5..Создание.суперклассов....................................................118
8.6..Переопределение.полей...................................................120
8.7..Анонимные.подклассы......................................................121
8.8..Абстрактные.классы.........................................................122
8.9..Абстрактные.поля.............................................................122
8.10..Порядок.создания.и.опережающие.определения...L3........123
8.11..Иерархия.наследования.в.Scala......................................125
8.12..Равенство.объектов...L1....................................................128
8.13..Классы-значения...L2........................................................129
Упражнения.............................................................................1319
Содержание
Глава 9. Файлы и регулярные выражения....................133
9.1..Чтение.строк.....................................................................134
9.2..Чтение.символов..............................................................134
9.3..Чтение.лексем.и.чисел......................................................135
9.4..Чтение.из.URL.и.других.источников...................................136
9.5..Чтение.двоичных.файлов..................................................136
9.6..Запись.в.текстовые.файлы................................................136
9.7..Обход.каталогов...............................................................137
9.8..Сериализация...................................................................137
9.9..Управление.процессами...А2..............................................138
9.10..Регулярные.выражения...................................................141
9.11..Группы.в.регулярных.выражениях...................................142
Упражнения.............................................................................143
Глава 10. Трейты................................................................145
10.1..Почему.не.поддерживается.множественное..
наследование?........................................................................146
10.2..Трейты.как.интерфейсы..................................................148
10.3..Трейты.с.конкретными.реализациями.............................149
10.4..Объекты.с.трейтами........................................................150
10.5..Многоуровневые.трейты.................................................150
10.6..Переопределение.абстрактных.методов.в.трейтах..........152
10.7..Трейты.с.богатыми.интерфейсами..................................153
10.8..Конкретные.поля.в.трейтах.............................................154
10.9..Абстрактные.поля.в.трейтах............................................155
10.10..Порядок.конструирования.трейтов...............................156
10.11..Инициализация.полей.трейтов......................................158
10.12..Трейты,.наследующие.классы.......................................160
10.13..Собственные.типы...L2....................................................161
10.14..За.кулисами..................................................................162
Упражнения.............................................................................164
Глава 11. Операторы.........................................................167
11.1..Идентификаторы............................................................168
11.2..Инфиксные.операторы....................................................169
11.3..Унарные.операторы........................................................17010
Содержание
11.4..Операторы.присваивания...............................................171
11.5..Приоритет......................................................................171
11.6..Ассоциативность............................................................172
11.7..Методы.apply.и.update....................................................173
11.8..Экстракторы...L2...............................................................174
11.9..Экстракторы.с.одним.аргументом..
или.без.аргументов...L2.............................................................177
11.10..Метод.unapplySeq...L2.....................................................177
11.11..Динамический.вызов...L2................................................178
Упражнения.............................................................................182
Глава 12. Функции высшего порядка............................185
12.1..Функции.как.значения.....................................................186
12.2..Анонимные.функции.......................................................187
12.3..Функции.с.функциональными.параметрами....................188
12.4..Вывод.типов...................................................................189
12.5..Полезные.функции.высшего.порядка..............................190
12.6..Замыкания......................................................................192
12.7..Преобразование.функций.в.SAM.....................................193
12.8..Карринг..........................................................................194
12.9..Абстракция.управляющих.конструкций...........................196
12.10..Выражение.return..........................................................198
Упражнения.............................................................................199
Глава 13. Коллекции.........................................................201
13.1..Основные.трейты.коллекций...........................................202
13.2..Изменяемые.и.неизменяемые.коллекции.......................204
13.3..Последовательности.......................................................205
13.4..Списки............................................................................207
13.5..Множества......................................................................208
13.7..Операторы.добавления.и.удаления.элементов...............210
13.7..Общие.методы................................................................212
13.8..Функции.map.и.flatMap....................................................214
13.9..Функции.reduce,.fold.и.scan...А3........................................216
13.10..Функция.zip...................................................................220
13.11..Итераторы....................................................................22211
Содержание
13.12..Потоки...А3......................................................................223
13.13..Ленивые.представления...А3...........................................225
13.14..Взаимодействие.с.коллекциями.Java............................226
13.15..Параллельные.коллекции..............................................227
Упражнения.............................................................................229
Глава 14. Сопоставление с образцом
и case-классы.....................................................................232
14.1..Лучше,.чем.switch............................................................233
14.2..Ограничители.................................................................234
14.3..Переменные.в.образцах..................................................235
14.4..Сопоставление.c.типами.................................................236
14.5..Сопоставление.с.массивами,.списками.и.кортежами......237
14.6..Экстракторы...................................................................238
14.7..Образцы.в.объявлениях.переменных..............................239
14.8..Образцы.в.выражениях.for..............................................240
14.9..Case-классы...................................................................241
14.10..Метод.copy.и.именованные.параметры.........................242
14.11..Инфиксная.нотация.в.предложениях.case.....................243
14.12..Сопоставление.с.вложенными.структурами..................244
14.13..Так.ли.необходимы.case-классы?..................................245
14.14..Запечатанные.классы...................................................247
14.15..Имитация.перечислений...............................................247
14.16..Тип.Option.....................................................................248
14.17..Частично.определенные.функции...L2.............................249
Упражнения.............................................................................251
Глава 15. Аннотации..........................................................254
15.1..Что.такое.аннотации?......................................................255
15.2..Что.можно.аннотировать?...............................................256
15.3..Аргументы.аннотаций.....................................................257
15.4..Реализация.аннотаций....................................................258
15.5..Аннотации.для.элементов.Java........................................259
15.6..Аннотации.для.оптимизации...........................................262
15.7..Аннотации.ошибок.и.предупреждений............................267
Упражнения.............................................................................26912
Содержание
Глава 16. Обработка XML.................................................271
16.1..Литералы.XML.................................................................272
16.2..Узлы.XML........................................................................273
16.3..Атрибуты.элементов.......................................................274
16.4..Встроенные.выражения..................................................276
16.5..Выражения.в.атрибутах...................................................277
16.6..Необычные.типы.узлов....................................................278
16.7..XPath-подобные.выражения............................................279
16.8..Сопоставление.с.образцом.............................................281
16.9..Модификация.элементов.и.атрибутов.............................282
16.10..Трансформация.XML.....................................................283
16.11..Загрузка.и.сохранение..................................................284
16.12..Пространства.имен.......................................................287
Упражнения.............................................................................288
Глава 17. Объекты Future.................................................290
17.1..Запуск.асинхронных.заданий.в.объектах.Future...............291
17.2..Ожидание.результатов....................................................294
17.3..Класс.Try.........................................................................295
17.4..Обратные.вызовы...........................................................296
17.5..Комбинирование.заданий.в.объектах.Future....................297
17.6..Другие.преобразования.объектов.Future.........................300
17.7..Методы.объекта.Future....................................................302
17.8..Объекты.Promise.............................................................304
17.9..Контексты.выполнения...................................................306
Упражнения.............................................................................307
Глава 18. Параметризованные типы.............................310
18.1..Обобщенные.классы.......................................................311
18.2..Обобщенные.функции.....................................................312
18.3..Границы.изменения.типов...............................................312
18.4..Границы.представления..................................................314
18.5..Границы.контекста..........................................................314
18.6..Границы.контекста.ClassTag............................................315
18.7..Множественные.границы................................................316
17.8..Ограничение.типов...L3.....................................................31613
Содержание
18.9..Вариантность..................................................................318
18.10..Ко-.и.контравариантные.позиции..................................320
18.11..Объекты.не.могут.быть.обобщенными...........................322
18.12..Подстановочный.символ...............................................323
Упражнения.............................................................................324
Глава 19. Дополнительные типы....................................326
19.1..Типы-одиночки...............................................................327
19.2..Проекции.типов..............................................................329
19.3..Цепочки..........................................................................330
19.4..Псевдонимы.типов..........................................................331
19.5..Структурные.типы...........................................................332
19.6..Составные.типы..............................................................332
19.7..Инфиксные.типы.............................................................334
19.8..Экзистенциальные.типы.................................................334
19.9..Система.типов.языка.Scala.............................................336
19.10..Собственные.типы........................................................337
19.11..Внедрение.зависимостей.............................................338
19.12..Абстрактные.типы...L3.....................................................341
19.13..Родовой.полиморфизм...L3.............................................343
19.14..Типы.высшего.порядка...L3..............................................346
Упражнения.............................................................................350
Глава 20. Парсинг..............................................................353
20.1..Грамматики....................................................................354
20.2..Комбинирование.операций.парсера...............................356
20.3..Преобразование.результатов.парсинга...........................358
20.4..Отбрасывание.лексем.....................................................360
20.5..Создание.деревьев.синтаксического.анализа.................361
20.6..Уход.от.левой.рекурсии...................................................361
20.7..Дополнительные.комбинаторы.......................................363
20.8..Уход.от.возвратов...........................................................366
20.9..Packrat-парсеры.............................................................367
20.10..Что.такое.парсеры?.......................................................368
20.11..Парсеры.на.основе.регулярных.выражений...................369
20.12..Парсеры.на.основе.лексем............................................37014
Содержание
20.13..Обработка.ошибок........................................................372
Упражнения.............................................................................374
Глава 21. Неявные параметры и преобразования.....376
21.1..Неявные.преобразования...............................................377
21.2..Использование.неявных.преобразований..
для.расширения..существующих.библиотек............................378
21.3..Импорт.неявных.преобразований...................................379
21.4..Правила.неявных.преобразований..................................381
21.5..Неявные.параметры........................................................382
21.6..Неявные.преобразования.с.неявными.параметрами.......383
21.7..Границы.контекста..........................................................385
21.8..Классы.типов..................................................................386
21.9..Неявный.параметр.подтверждения.................................389
21.10..Аннотация[email protected]
21.11..Тайна.CanBuildFrom.......................................................391
Упражнения.............................................................................393
Предметный указатель.....................................................395
Название: Scala для нетерпеливых, 2-е издание
Автор: Хорстман К.
Год: 2017
Жанр: программирование
Издательство: ДМК Пресс
Язык: Русский
Формат: pdf
Качество: eBook
Страниц: 415
Размер: 3,5 MB
Скачать Хорстман К. - Scala для нетерпеливых, 2-е издание (2017)
Наш сайт не предоставляет ссылки на скачивание |
Наш сайт не предоставляет ссылки на скачивание |
Наш сайт не предоставляет ссылки на скачивание |
Ключевые теги: программирование, книги, Scala для нетерпеливых, 2-е издание
Другие новости по теме:
Панель управления
Реклама
Архив сайта
Октябрь 2023 (1)Сентябрь 2023 (15)
Ноябрь 2022 (9)
Октябрь 2022 (27)
Сентябрь 2022 (53)
Июль 2022 (70)
Июнь 2022 (100)
Май 2022 (198)
Апрель 2022 (63)
Март 2022 (5)
Февраль 2022 (82)
Январь 2022 (191)
Декабрь 2021 (101)
Ноябрь 2021 (13)
Октябрь 2021 (28)
Сентябрь 2021 (16)
Август 2021 (18)
Июль 2021 (24)
Июнь 2021 (5)
Апрель 2021 (12)
Март 2021 (11)
Февраль 2021 (1)
Январь 2021 (14)
Декабрь 2020 (11)
Ноябрь 2020 (68)
Октябрь 2020 (102)
Сентябрь 2020 (267)
Август 2020 (273)
Июль 2020 (204)
Июнь 2020 (278)
Май 2020 (420)
Апрель 2020 (302)
Март 2020 (85)
Февраль 2020 (78)
Январь 2020 (272)
Декабрь 2019 (143)
Ноябрь 2019 (209)
Октябрь 2019 (296)
Сентябрь 2019 (340)
Август 2019 (289)
Июль 2019 (338)
Июнь 2019 (299)
Май 2019 (125)
Апрель 2019 (461)
Март 2019 (471)
Февраль 2019 (343)
Январь 2019 (298)
Декабрь 2018 (279)
Ноябрь 2018 (170)
Октябрь 2018 (216)
Сентябрь 2018 (142)
Август 2018 (70)
Июль 2018 (110)
Июнь 2018 (141)
Май 2018 (215)
Апрель 2018 (178)
Март 2018 (203)
Февраль 2018 (132)
Январь 2018 (179)
Декабрь 2017 (317)
Ноябрь 2017 (320)
Октябрь 2017 (109)
Сентябрь 2017 (163)
Август 2017 (218)
Июль 2017 (295)
Июнь 2017 (231)
Май 2017 (219)
Апрель 2017 (174)
Март 2017 (414)
Февраль 2017 (593)
Январь 2017 (1130)
Декабрь 2016 (912)
Ноябрь 2016 (962)
Октябрь 2016 (915)
Сентябрь 2016 (651)
Август 2016 (392)
Июль 2016 (496)
Июнь 2016 (483)
Май 2016 (693)
Апрель 2016 (961)
Март 2016 (573)
Февраль 2016 (1035)
Январь 2016 (373)
Декабрь 2015 (198)
Ноябрь 2015 (91)
Октябрь 2015 (4)
Сентябрь 2015 (237)
Август 2015 (8)
Июль 2015 (799)
Июнь 2015 (1668)
Май 2015 (856)
Апрель 2015 (1845)
Март 2015 (1235)
Февраль 2015 (1)
Декабрь 2014 (6)
Ноябрь 2014 (11)
Октябрь 2014 (8)
Сентябрь 2014 (258)
Август 2014 (19848)
Июль 2014 (21203)
Июнь 2014 (22780)
Май 2014 (23904)
Апрель 2014 (21761)
Март 2014 (19579)
Февраль 2014 (17891)
Январь 2014 (23195)
Декабрь 2013 (16543)
Ноябрь 2013 (354)
Октябрь 2013 (475)
Сентябрь 2013 (408)
Август 2013 (243)
Июль 2013 (160)
Июнь 2013 (727)
Май 2013 (700)
Апрель 2013 (614)
Март 2013 (732)
Февраль 2013 (500)
Январь 2013 (584)
Декабрь 2012 (549)
Ноябрь 2012 (1154)
Октябрь 2012 (783)
Сентябрь 2012 (1154)
Август 2012 (624)
Июль 2012 (1114)
Июнь 2012 (1246)
Май 2012 (2941)
Апрель 2012 (3200)
Март 2012 (1359)
Январь 2012 (484)
Ноябрь 2011 (1692)
Октябрь 2011 (3643)
Сентябрь 2011 (2220)
Август 2011 (1770)
Июль 2011 (3102)
Июнь 2011 (1511)
Май 2011 (528)
Апрель 2011 (538)
Март 2011 (607)
Февраль 2011 (106)
Январь 2011 (2)
Октябрь 2010 (43)
Сентябрь 2010 (130)
Август 2010 (38)
Июль 2010 (44)
Март 2010 (63)
Февраль 2010 (192)
Январь 2010 (92)
Декабрь 2009 (110)
Май 2022 (198)
Апрель 2022 (63)
Март 2022 (5)
Февраль 2022 (82)
Январь 2022 (191)
Декабрь 2021 (101)
Ноябрь 2021 (13)
Октябрь 2021 (28)
Сентябрь 2021 (16)
Август 2021 (18)
Июль 2021 (24)
Июнь 2021 (5)
Апрель 2021 (12)
Март 2021 (11)
Февраль 2021 (1)
Январь 2021 (14)
Декабрь 2020 (11)
Ноябрь 2020 (68)
Октябрь 2020 (102)
Сентябрь 2020 (267)
Август 2020 (273)
Июль 2020 (204)
Июнь 2020 (278)
Май 2020 (420)
Апрель 2020 (302)
Март 2020 (85)
Февраль 2020 (78)
Январь 2020 (272)
Декабрь 2019 (143)
Ноябрь 2019 (209)
Октябрь 2019 (296)
Сентябрь 2019 (340)
Август 2019 (289)
Июль 2019 (338)
Июнь 2019 (299)
Май 2019 (125)
Апрель 2019 (461)
Март 2019 (471)
Февраль 2019 (343)
Январь 2019 (298)
Декабрь 2018 (279)
Ноябрь 2018 (170)
Октябрь 2018 (216)
Сентябрь 2018 (142)
Август 2018 (70)
Июль 2018 (110)
Июнь 2018 (141)
Май 2018 (215)
Апрель 2018 (178)
Март 2018 (203)
Февраль 2018 (132)
Январь 2018 (179)
Декабрь 2017 (317)
Ноябрь 2017 (320)
Октябрь 2017 (109)
Сентябрь 2017 (163)
Август 2017 (218)
Июль 2017 (295)
Июнь 2017 (231)
Май 2017 (219)
Апрель 2017 (174)
Март 2017 (414)
Февраль 2017 (593)
Январь 2017 (1130)
Декабрь 2016 (912)
Ноябрь 2016 (962)
Октябрь 2016 (915)
Сентябрь 2016 (651)
Август 2016 (392)
Июль 2016 (496)
Июнь 2016 (483)
Май 2016 (693)
Апрель 2016 (961)
Март 2016 (573)
Февраль 2016 (1035)
Январь 2016 (373)
Декабрь 2015 (198)
Ноябрь 2015 (91)
Октябрь 2015 (4)
Сентябрь 2015 (237)
Август 2015 (8)
Июль 2015 (799)
Июнь 2015 (1668)
Май 2015 (856)
Апрель 2015 (1845)
Март 2015 (1235)
Февраль 2015 (1)
Декабрь 2014 (6)
Ноябрь 2014 (11)
Октябрь 2014 (8)
Сентябрь 2014 (258)
Август 2014 (19848)
Июль 2014 (21203)
Июнь 2014 (22780)
Май 2014 (23904)
Апрель 2014 (21761)
Март 2014 (19579)
Февраль 2014 (17891)
Январь 2014 (23195)
Декабрь 2013 (16543)
Ноябрь 2013 (354)
Октябрь 2013 (475)
Сентябрь 2013 (408)
Август 2013 (243)
Июль 2013 (160)
Июнь 2013 (727)
Май 2013 (700)
Апрель 2013 (614)
Март 2013 (732)
Февраль 2013 (500)
Январь 2013 (584)
Декабрь 2012 (549)
Ноябрь 2012 (1154)
Октябрь 2012 (783)
Сентябрь 2012 (1154)
Август 2012 (624)
Июль 2012 (1114)
Июнь 2012 (1246)
Май 2012 (2941)
Апрель 2012 (3200)
Март 2012 (1359)
Январь 2012 (484)
Ноябрь 2011 (1692)
Октябрь 2011 (3643)
Сентябрь 2011 (2220)
Август 2011 (1770)
Июль 2011 (3102)
Июнь 2011 (1511)
Май 2011 (528)
Апрель 2011 (538)
Март 2011 (607)
Февраль 2011 (106)
Январь 2011 (2)
Октябрь 2010 (43)
Сентябрь 2010 (130)
Август 2010 (38)
Июль 2010 (44)
Март 2010 (63)
Февраль 2010 (192)
Январь 2010 (92)
Декабрь 2009 (110)