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

Оглавление⌄
Предисловие....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.
Программируйте весело и эффективно – изучайте Kotlin с удовольствием!
Вы усвоите основные понятия по порядку и без лишней сложности, построив прочную базу знаний. Эта книга проведет вас по основам языка шаг за шагом – с забавными иллюстрациями, понятными примерами и четкими объяснениями. Автор более 25 лет занимается разработкой программного обеспечения, а с 2017 года пишет о Kotlin и рисует о нем смешные комиксы.
Издание станет идеальным помощником начинающим изучать программирование или желающим восполнить пробелы в знаниях.
Файл доступен для загрузки ниже.
Поделиться
Частые вопросы
Можно ли скачать «Kotlin в иллюстрациях» бесплатно?
Да, «Kotlin в иллюстрациях» доступна для бесплатного скачивания на нашем сайте в формате PDF. Ссылка на файл находится на этой странице.
В каком формате и какого размера файл?
Книга предоставляется в формате PDF, размер файла 5,3 МБ.
Кто автор и когда вышла книга?
автор — Лидс Дэйв, издательство ДМК Пресс, год выпуска 2025, 494 страниц.
О чём книга «Kotlin в иллюстрациях»?
Программируйте весело и эффективно – изучайте Kotlin с удовольствием!Эта книга проведет вас по основам языка шаг за шагом – с забавными иллюстрациями, понятными примерами и четкими объяснениями.