Национальный цифровой ресурс Руконт - межотраслевая электронная библиотека (ЭБС) на базе технологии Контекстум (всего произведений: 629464)
Контекстум
.

Kotlin. Сборник рецептов. Предметный подход (5000,00 руб.)

0   0
Первый авторКоузен Кен
ИздательствоМ.: ДМК Пресс
Страниц222
ID809607
АннотацияЭтот сборник рецептов охватывает широкий спектр тем, с которыми следует ознакомиться разработчику, планирующему перейти на язык Kotlin или желающему изучить его более глубоко. В начале книги описывается процесс установки и запуска Kotlin, затем обсуждаются фундаментальные особенности языка. Особое внимание уделено его объектно-ориентированным возможностям, которые могут показаться необычными разработчикам на других языках. Рецепты, собранные в разных главах по тематическому принципу, можно изучать в любом порядке, удобном читателю. Они дополняют друг друга, и каждый рецепт заканчивается ссылками на другие. Материал удобно структурирован: за описанием каждой задачи следуют ее решение и развернутое обсуждение.
Кому рекомендованоИздание предназначено для разработчиков, знакомых с объектно-ориентированным программированием, особенно на Java или другом языке, основанном на JVM. Знание Java предпочтительно, но не обязательно.
ISBN978-5-97060-883-8
УДК004.43Kotlin
ББК32.972
Коузен, К. . Kotlin. Сборник рецептов. Предметный подход / К. . Коузен .— Москва : ДМК Пресс, 2021 .— 222 с. : ил. — ISBN 978-5-97060-883-8 .— URL: https://rucont.ru/efd/809607 (дата обращения: 22.02.2024)

Предпросмотр (выдержки из произведения)

Kotlin._Сборник_рецептов._Предметный_подход.pdf
УДК 004.43Kotlin ББК 32.972 К55 К55 Kotlin. Сборник рецептов. Предметный подход / пер. с анг. А. Н. Киселева. – М.: ДМК Пресс, 2021. – 220 с.: ил. Кен Коузен ISBN 978-5-97060-883-8 Этот сборник рецептов охватывает широкий спектр тем, с которыми следует ознакомиться разработчику, планирующему перейти на язык Kotlin или желающему изучить его более глубоко. В начале книги описывается процесс установки и запуска Kotlin, затем обсуждаются фундаментальные особенности языка. Особое внимание уделено его объектно-ориентированным возможностям, которые могут показаться необычными разработчикам на других языках. Рецепты, собранные в разных главах по тематическому принципу, можно изучать в любом порядке, удобном читателю. Они дополняют друг друга, и каждый рецепт заканчивается ссылками на другие. Материал удобно структурирован: за описанием каждой задачи следуют ее решение и развернутое обсуждение. Издание предназначено для разработчиков, знакомых с объектно-ориентированным программированием, особенно на Java или другом языке, основанном на JVM. Знание Java предпочтительно, но не обязательно. УДК 004.43Kotlin ББК 32.972 © 2021 DMK Press Authorized Russian translation of the English edition of Kotlin Cookbook ISBN 9781492046677 © 2020 Ken Kousen/ This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. ISBN (анг.) 978-1-492-04667-7 ISBN (рус.) 978-5-97060-883-8 © 2020 Ken Kousen © Оформление, издание, перевод, ДМК Пресс, 2021
Стр.5
Оглавление Предисловие от издательства ...................................................................10 Предисловие ....................................................................................................11 Вступление ........................................................................................................12 Глава 1. Установка и запуск Kotlin ...........................................................19 1.1. Запуск Kotlin без локального компилятора..............................................19 1.2. Установка Kotlin на локальный компьютер..............................................21 1.3. Компиляция и выполнение кода на Kotlin из командной строки ..........23 1.4. Использование Kotlin REPL .......................................................................25 1.5. Запуск сценария на Kotlin .........................................................................26 1.6. Сборка автономного приложения с помощью GraalVM .........................26 1.7. Добавление в Gradle плагина поддержки Kotlin (синтаксис Groovy) ......29 1.8. Добавление в Gradle плагина поддержки Kotlin (синтаксис Kotlin) .......32 1.9. Сборка проектов на Kotlin с помощью Gradle ..........................................33 1.10. Использование Maven c Kotlin .................................................................35 Глава 2. Основы Kotlin ..................................................................................37 2.1. Использование типов с поддержкой значения null ................................37 2.2. Добавление признака поддержки null в Java ...........................................40 2.3. Добавление перегруженных методов для вызова из Java .......................41 2.4. Явное преобразование типов ....................................................................45 2.5. Вывод чисел в разных системах счисления .............................................47 2.6. Возведение числа в степень ......................................................................49 2.7. Операторы поразрядного сдвига ..............................................................51 2.8. Использование поразрядных операторов ................................................53 2.9. Создание экземпляров Pair с помощью to ...............................................56 Глава 3. Объектно-ориентированное программирование на Kotlin ....................................................................59 3.1. Различия между const и val .......................................................................59 3.2. Создание нестандартных методов чтения и записи свойств .................60 3.3. Определение классов данных ...................................................................63 3.4. Прием создания теневого свойства ..........................................................66
Стр.6
6  Оглавление 3.5. Перегрузка операторов ..............................................................................68 3.6. Отложенная инициализация с помощью lateinit ....................................70 3.7. Использование операторов безопасного приведения типа, ссылочного равенства и «Элвис» для переопределения метода equals .............................................................................................73 3.8. Создание синглтона ...................................................................................75 3.9. Много шума из ничего ...............................................................................78 Глава 4. Функциональное программирование ..................................81 4.1. Использование fold в алгоритмах .............................................................81 4.2. Использование функции reduce для свертки ...........................................84 4.3. Хвостовая рекурсия ...................................................................................86 Глава 5. Коллекции ........................................................................................89 5.1. Работа с массивами ....................................................................................89 5.2. Создание коллекций ..................................................................................92 5.3. Получение представлений только для чтения из существующих коллекций ..................................................................................................94 5.4. Конструирование ассоциативного массива из коллекции......................95 5.5. Возврат значения по умолчанию в случае пустой коллекции ................96 5.6. Ограничение значений заданным диапазоном ......................................98 5.7. Обработка коллекций методом скользящего окна ..................................99 5.8. Деструктуризация списков ......................................................................101 5.9. Сортировка по нескольким свойствам ...................................................102 5.10. Определение своего итератора .............................................................103 5.11. Фильтрация элементов коллекций по типам .......................................105 5.12. Преобразование диапазона в прогрессию ...........................................107 Глава 6. Последовательности ..................................................................111 6.1. Использование ленивых последовательностей .....................................111 6.2. Генерирование последовательностей ....................................................113 6.3. Управление бесконечными последовательностями ..............................115 6.4. Извлечение значений из последовательности ......................................117 Глава 7. Функции области видимости ..................................................121 7.1. Инициализация объекта с помощью apply после создания ..................121 7.2. Использование also для создания побочных эффектов ........................122 7.3. Использование функции let и оператора «Элвис» .................................124 7.4. Использование let с временными переменными ..................................125 Глава 8. Делегаты в Kotlin .........................................................................129 8.1. Реализация композиции делегированием .............................................129 8.2. Использование делегата lazy ...................................................................132
Стр.7
Оглавление  7 8.3. Гарантия неравенства значению null .....................................................133 8.4. Использование делегатов observable и vetoable ....................................135 8.5. Использование ассоциативных массивов в роли делегатов .................138 8.6. Создание собственных делегатов ...........................................................140 Глава 9. Тестирование .................................................................................143 9.1. Настройка жизненного цикла тестового класса ....................................143 9.2. Использование классов данных в тестах ................................................148 9.3. Использование вспомогательных функций с аргументами по умолчанию ................................................................150 9.4. Повторение тестов JUnit 5 с разными данными ....................................151 9.5. Использование классов данных для параметризации тестов ...........................................................................154 Глава 10. Ввод и вывод ..............................................................................157 10.1. Управление ресурсами с помощью use ................................................157 10.2. Запись в файл .........................................................................................160 Глава 11. Разное ............................................................................................163 11.1. Обработка версии Kotlin ........................................................................163 11.2. Многократное выполнение лямбда-выражения .................................164 11.3. Исчерпывающая инструкция when .......................................................165 11.4. Использование функции replace с регулярными выражениями ................................................................167 11.5. Преобразование чисел в двоичное представление и обратно ............169 11.6. Создание выполняемого класса ............................................................171 11.7. Измерение прошедшего времени .........................................................174 11.8. Запуск потоков выполнения .................................................................175 11.9. Принуждение к завершению реализации с помощью TODO .............178 11.10. Случайное поведение класса Random .................................................179 11.11. Использование специальных символов в именах функций .............181 11.12. Передача исключений в Java ...............................................................182 Глава 12. Фреймворк Spring ....................................................................185 12.1. Открытие классов для расширения фреймворком Spring ..................185 12.2. Хранимые классы данных на Kotlin ......................................................188 12.3. Внедрение зависимостей ......................................................................190 Глава 13. Сопрограммы и структурированная конкуренция ......193 13.1. Выбор функции запуска сопрограмм ...................................................193 13.2. Замена async/await на withContext ........................................................198 13.3. Диспетчеры ............................................................................................200
Стр.8
8  Оглавление 13.4. Запуск сопрограмм в пуле потоков Java ...............................................202 13.5. Отмена сопрограмм ...............................................................................204 13.6. Отладка сопрограмм ..............................................................................207 Предметный указатель ..............................................................................209 Об авторе .........................................................................................................219
Стр.9

Облако ключевых слов *


* - вычисляется автоматически
.
.