Scala для нетерпеливых
Покупка
Тематика:
Программирование и алгоритмизация
Издательство:
ДМК Пресс
Автор:
Хорстманн Кей
Перевод:
Киселев Артём Николаевич
Год издания: 2020
Кол-во страниц: 414
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-97060-840-1
Артикул: 712488.02.99
Книга в сжатой форме описывает, что можно делать на языке Scala, и как это делать. Кей Хорстманн, автор всемирного бестселлера «Core Java», дает быстрое и практическое введение в язык программирования, основанное на примерах программного кода. Он знакомит читателя с концепциями языка Scala и приемами программирования небольшими «порциями», что позволяет быстро осваивать их и применять на практике. Практические примеры помогут вам пройти все стадии компетентности, от новичка до эксперта. Второе издание было обновлено до поддержки версии Scala 2.12 и демонстрирует самые современные приемы использования языка. В него было добавлено описание последних нововведений в Scala, включая интерполяцию строк, динамический вызов, неявные классы и объекты Future. Издание предназначено для программистов на Java, C++ и С#, которые желают освоить язык Scala и в целом функциональное программирование.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 09.03.04: Программная инженерия
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
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