Kotlin в иллюстрациях

Kotlin в иллюстрациях

Kotlin в иллюстрациях
Автор: Лидс Дэйв
Переводчик: Логунов А.
Дата выхода: 2025
Издательство: ДМК Пресс
Количество страниц: 494
Размер файла: 5.3 MB
Тип файла: PDF
Добавил: Aleks-5
 Проверить на вирусы

Предисловие....15

Признательности....16

Глава 1....18

Переменные, выражения и типы....18

Введение в переменные....20

Переприсваивание значений переменным....22

Переменные, которым нельзя переприсваивать новые значения....23

Именование переменных....24

Выражения и инструкции....25

Типы: разновидности значений....27

Целые и длинные числа....28

Булевы величины....29

Строковые литералы....29

Другие типы....30

Типы и переприсваивание....30

Краткий итог....30

Глава 2....32

Функции....32

Введение в функции....34

Устранение дублирования с помощью функций....35

Основы функций....36

Создание функции....36

Вызов функции....38

Аргументы и параметры: в чем разница?....41

Функции с более чем одним параметром....41

Именованные аргументы....43

Дефолтные аргументы....44

Случаи, когда дефолтный аргумент стоит на первом месте....45

Тела в форме выражений и в форме блоков....47

Функции без результата....49

Функция main()....50

Печать на экране....51

Краткий итог....53

Глава 3....55

Условные конструкции: when и if....55

Златовласка и три ветви....57

Введение в конструкцию when языка Kotlin....59

Побеждает первое истинное условие ....61

Точные совпадения....63

Должны учтитываться все условия ....64

Выражения if....65

Выражения when и if как инструкции....67

Краткий итог....68

Глава 4....69

Классы, объекты и пакеты....69

Соединение переменных и функций в одном месте....71

Определение класса....72

Пустой класс....72

Первая диаграмма....73

Объекты....74

Конструирование объектов....75

Параметры конструктора....75

Классы в сопоставлении с объектами....75

Получение значения свойства....77

Свойства с доступом только для чтения....77

Приватные свойства....78

Добавление функции-члена....79

Добавление других функций....81

Анатомия класса....83

Абсолютно все является объектом....83

Числа типа Double как объекты....83

Строковые литералы как объекты....84

Булевы величины как объекты....84

Объекты-одиночки....85

Группировка в пакеты....87

Квалифицирование элементов исходного кода....89

Импорт элементов исходного кода....90

Именованный импорт....91

Импорт с подстановочным знаком....91

Импорт из стандартной библиотеки....92

Краткий итог....94

Глава 5....95

Перечислительные классы....95

Создание перечислительного класса....98

Использование перечислительного класса....99

Использование перечислительных классов с выражениями when....100

Добавление свойств и функций в перечислительные классы....101

Встроенные свойства....103

Свойство ordinal....103

Свойство name....104

Краткий итог....105

Глава 6....107

Отсутствие значений и защита от null....107

Введение в null....109

Присутствующие и отсутствующие значения....111

Типы, которые можно и нельзя использовать с null ....113

Время компиляции и время исполнения....114

Взаимосвязь типов, которые можно и нельзя использовать с null ....115

Ожидание типа, который можно использовать с null....116

Ожидание типа, который нельзя использовать с null....118

Использование условных конструкций для проверки на null....121

Использование оператора Элвиса для предоставления дефолтного значения....124

Использование оператора принудительной конвертации в не-null для обеспечения присутствия значения ....126

Ошибки во время компиляции и во время исполнения....128

Когда использовать оператор принудительной конвертации в не-null?....129

Использование оператора защищенного вызова для обращения к функциям и свойствам....129

Краткий итог....133

Глава 7....134

Лямбды и ссылки на функции....134

Ножницы и машинки Берта....136

Введение в функциональные типы ....139

Две функции с одинаковыми типами....142

Передача функций функциям....143

Возвращение функций из функций....144

Введение в лямбды....145

Традиционные функции и лямбды....147

Неявный параметр it....148

Лямбды и функции более высокого порядка....148

Передача лямбд в качестве аргументов....148

Возвращение лямбд в качестве результатов функций....150

Лямбды с несколькими инструкциями....151

Замыкания....152

Краткий итог....154

Глава 8....156

Коллекции: списки и множества....156

Введение в списки....158

Коллекции и типы....160

Добавление и удаление элемента....161

Список и мутируемый список....164

Получение элемента из списка....165

Циклы и итерации....167

Операции на коллекциях....170

Отображение коллекций: конвертация элементов....171

Сортировка коллекций....173

Фильтрация коллекций: включение и исключение элементов....174

Цепочки операций на коллекциях....176

Другие операции на коллекциях....178

Введение в множества....178

Краткий итог....180

Глава 9....182

Словари....182

Правильный инструмент для работы....184

Ассоциирование данных между собой....184

Основы словарей....186

Создание словаря с помощью mapOf()....188

Поиск значения....189

Изменение словаря....190

Операции на словарях....192

Фильтрация....193

Установка дефолтных значений....195

Создание словаря из списка....196

Ассоциирование свойств из списка объектов....196

Краткий итог....203

Глава 10....204

Получатели и расширения....204

Независимые функции и объектные функции....206

Как ни крути, они не такие уж и разные....209

Введение в получатели....209

Введение в функции-расширения....212

Получатели с типом, который можно использовать с null....214

Свойства-расширения....216

Краткий итог....217

Глава 11....218

Диапазоны доступности и диапазонные функции....218

Введение в диапазоны доступности....220

Диапазоны и видимость....222

Диапазоны инструкций....223

Диапазоны объявлений....224

Вложенные диапазоны и видимость....225

Введение в диапазонные функции....231

with()....231

run()....232

let()....234

also()....236

apply()....237

Выбор наиболее подходящей диапазонной функции....238

Какую диапазонную функцию следует использовать?....239

Затенение имен....239

Затенение и неявные получатели....241

Затенение, неявные получатели и this....243

Диапазонные функции и проверки на null....244

Краткий итог....245

Глава 12....247

Введение в интерфейсы....247

Сью открывает ферму....249

Введение в интерфейсы....254

Подтипы и надтипы....256

Подтипы и подстановка....257

Приведение типа....259

Умное приведение типа....260

Явное приведение типа....261

Несколько интерфейсов....262

Наследование интерфейсов....264

Дефолтные реализации....267

Краткий итог....269

Глава 13....271

Введение в делегирование действий между классами....271

Ужин Роджера вне дома....273

Делегирование действий в ресторанах и в исходном коде....273

Ручное делегирование действий....274

Делегирование дополнительных вызовов функций....277

Простое делегирование по Kotlin’овски....279

Несколько делегатов....280

Переопределение делегированного вызова....282

Урегулирование конфликтов....283

Делегирование действий для общих и конкретных типов....286

Краткий итог....289

Глава 14....291

Абстрактные и открытые классы....291

Моделирование автомобиля....293

Введение в абстрактные классы....296

Расширение абстрактных классов....296

Наследование....298

Интерфейс и реализация....299

Переопределение членов....301

Защищенная видимость....302

Абстрактные функции и свойства....303

Открытые функции и свойства....304

Введение в открытые классы....305

Модификаторы видимости: извлекатели и установители....306

Комбинирование интерфейсов и абстрактных/открытых классов....308

Сравнение интерфейсов, абстрактных и открытых классов ....308

Подклассы и подстановка....309

Иерархии классов....310

Тип Any....311

Краткий итог....312

Глава 15....313

Классы данных и деструктуризация....313

Переопределение функции equals()....315

Равенство ссылок....315

Равенство значений....316

Переопределение функции hashCode()....320

Переопределение функции toString()....322

Введение в классы данных....324

Копирование классов данных....326

Деструктуризация....328

Деструктуризация и стандартная библиотека....331

Деструктуризация классов, не предназначенных для хранения только данных....333

Ограничения классов данных....335

Классы данных и наследование....336

Параметры конструктора....336

Краткий итог....338

Глава 16....339

Запечатанные типы....339

Добавление еще одного типа....343

Введение в запечатанные типы....346

Запечатанные классы....348

Зачем вообще нужен модификатор sealed?....349

Ограничения подтипа запечатанного типа....351

Запечатанные типы в сопоставлении с перечислительными классами....353

Краткий итог....356

Глава 17....357

Обработка исключений во время исполнения программы....357

Проблемы во время исполнения....359

Стек вызовов....360

Стеки вызовов, исключения и сообщения об ошибках....364

Перехват исключений....367

Исключения являются объектами....371

Запуск исключений....373

Типы исключений....374

Обработка нескольких типов исключений по-разному....378

Вычисление результата выражения try....379

Конструкция Try-Catch-Finally....381

Функциональный подход к обработке исключений....383

Краткий итог....384

Глава 18....385

Обобщенные типы....385

Кружки и напитки....387

Объявленные типы, фактические типы и совместимость присваиваний ....390

Введение в обобщенные типы....392

Объявление обобщенного типа....392

Использование обобщенного типа....394

Установление ограничений на параметры типа....396

Обобщенные типы на практике....399

Использование параметров типа....399

Обобщенные типы с несколькими параметрами типа....399

Обобщенные интерфейсы и надклассы....399

Обобщенные функции....401

Обобщенные типы в стандартной библиотеке....402

List и Set....402

Pair....403

Издержки обобщенных типов....404

Совместимость присваиваний у обобщенных типов....404

Стирание типов....405

Краткий итог....407

Глава 19....408

Вариантность в обобщенных типах....408

Ковариантность....410

Контрвариантность....415

Что делает подтип подтипом?....420

Модификаторы вариантности....422

Модификатор out....424

Модификатор in....425

Вариантность на нескольких параметрах типа....426

Проекции типов....427

Исходящие проекции....430

Входящие проекции....431

Звездные проекции....432

Вариантность в стандартной библиотеке....434

Краткий итог....435

Глава 20....436

Самое необходимое о сопрограммах....436

По одному делу за раз.......438

Однопоточный блокирующий исходный код....439

Сопрограммы и конкурентность....441

Введение в сопрограммы....442

По два дела за раз.......451

Моделирование строительной площадки ....452

Два робота, по два дела за раз.......457

Многопоточная конкурентность....459

withContext(): передача работы другому диспетчеру....463

Отмены....467

Отмена всей работы....467

Отмена части работы....472

Когда невозможно оправиться от проблемы....474

Исключения в сопрограммах....474

Краткий итог....476

Дополнение А. Как исполнять листинги исходного кода....478

Загрузка проекта с образцами исходного кода....478

Создание проекта Kotlin....479

Добавление файлов Kotlin Script (.kts)....481

Добавление файлов Kotlin (.kt)....481

Другие способы написания и исполнения исходного кода Kotlin....482

Обследование онлайновой игровой площадки....482

Продвинутые опции....482

Дополнение Б. Добавление зависимостей....483

Добавление зависимостей в проект Gradle....484

Добавление зависимостей в проект Maven....485

Краткий итог....486

Предметный указатель....487

_GoBack....429

Программируйте весело и эффективно – изучайте Kotlin с удовольствием!

Эта книга проведет вас по основам языка шаг за шагом – с забавными иллюстрациями, понятными примерами и четкими объяснениями. Вы усвоите основные понятия по порядку и без лишней сложности, построив прочную базу знаний. Автор более 25 лет занимается разработкой программного обеспечения, а с 2017 года пишет о Kotlin и рисует о нем смешные комиксы.

Издание станет идеальным помощником начинающим изучать программирование или желающим восполнить пробелы в знаниях.


Похожее:

Список отзывов:

Нет отзывов к книге.