Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
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 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Scala для нетерпеливых

Второе издание

Кей Хостманн

Scala for the Impatient

Second Edition

Cay S. Hostmann

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