Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Scala для нетерпеливых

Покупка
Артикул: 712488.02.99
Книга в сжатой форме описывает, что можно делать на языке Scala, и как это делать. Кей Хорстманн, автор всемирного бестселлера «Core Java», дает быстрое и практическое введение в язык программирования, основанное на примерах программного кода. Он знакомит читателя с концепциями языка Scala и приемами программирования небольшими «порциями», что позволяет быстро осваивать их и применять на практике. Практические примеры помогут вам пройти все стадии компетентности, от новичка до эксперта. Второе издание было обновлено до поддержки версии Scala 2.12 и демонстрирует самые современные приемы использования языка. В него было добавлено описание последних нововведений в Scala, включая интерполяцию строк, динамический вызов, неявные классы и объекты Future. Издание предназначено для программистов на Java, C++ и С#, которые желают освоить язык Scala и в целом функциональное программирование.
Хорстманн, К. Scala для нетерпеливых : практическое пособие / К. Хорстманн ; пер. с англ. А. Н. Киселева. - 2-е изд. - Москва : ДМК Пресс, 2020. - 414 с. - ISBN 978-5-97060-840-1. - Текст : электронный. - URL: https://znanium.com/catalog/product/1838845 (дата обращения: 19.02.2025). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Кей Хостманн
Scala для нетерпеливых
Второе издание


Cay S. Hostmann
Scala for the Impatient
Second Edition


Кей Хостманн
Scala для нетерпеливых
Второе издание, переработанное и дополненное
Москва, 2020


УДК 004.432.42Scala
ББК 32.973-018.1
X84
Хорстманн К.
Х84	 Scala для нетерпеливых / пер. с англ. А. Н. Киселева – 2-е изд. – 
М.: ДМК Пресс, 2020. – 414 с.: ил.
ISBN 978-5-97060-840-1
Книга в  сжатой форме описывает, что можно делать на языке Scala, 
и  как это делать. Кей Хорстманн, автор всемирного бестселлера «Core 
Java», дает быстрое и  практическое введение в  язык программирования, основанное на примерах программного кода. Он знакомит читателя 
с  концепциями языка Scala и  приемами программирования небольшими 
«порциями», что позволяет быстро осваивать их и применять на практике. 
Практические примеры помогут вам пройти все стадии компетентности, 
от новичка до эксперта.
Второе издание было обновлено до поддержки версии Scala 2.12 и демонстрирует самые современные приемы использования языка. В него 
было добавлено описание последних нововведений в Scala, включая интерполяцию строк, динамический вызов, неявные классы и объекты Future. 
Издание предназначено для программистов на Java, C++ и C#, которые 
желают освоить язык Scala и в целом функциональное программирование.
УДК  004.432.42Scala
ББК  32.973-018.1
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без 
письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но, поскольку вероятность технических ошибок все равно существует, издательство 
не может гарантировать абсолютную точность и правильность приводимых 
сведений. В связи с этим издательство не несет ответственности за возможные 
ошибки, связанные с использованием книги.
 
ISBN 978-0-13-454056-6 (анг.)	
Copyright © 2017 Pearson Education Inc.
ISBN 978-5-97060-840-1 (рус.)	
©
	 Оформление, перевод ДМК Пресс


Моей жене, сделавшей эту книгу возможной,  
и моим детям, сделавшим ее необходимой


Содержание
Предисловие к первому изданию................................... 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. Процедуры.
...................................................................... 50


Содержание
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
Упражнения.
............................................................................. 93


Содержание
Глава 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
Упражнения.
............................................................................131


Содержание
Глава 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. Унарные операторы........................................................170


Содержание
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. Итераторы....................................................................222


Похожие