Учебник Kotlin с нуля для начинающих
Kotlin — современный, лаконичный и безопасный язык на платформе JVM. В этом курсе вы пройдёте путь от первой строки кода до уверенного владения идиомами языка: научитесь работать с типами и выводом типов, побеждать NullPointerException с помощью null-safety, использовать when и if как выражения, писать лямбды и функции высшего порядка, обрабатывать коллекции через map/filter/fold, проектировать классы и data class, применять sealed class и extension-функции, а в конце — заглянете в мир корутин. Курс посвящён именно языку Kotlin и его идиомам, а не Android-разработке.
Курс «Kotlin с нуля» состоит из 6 разделов и 22 уроков: Основы Kotlin: запуск, переменные, типы, Null-safety и управление потоком, Функции и лямбды, Коллекции, Классы и ООП и Расширения, ошибки и корутины. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.
Программа курса
1 Основы Kotlin: запуск, переменные, типы
- Что такое Kotlin и зачем он нужен
Kotlin — современный язык на JVM от JetBrains: лаконичность, безопасность по null, совместимость с Java. Где он применяется и почему его выбирают.
- JVM, компиляция и запуск программы
Как Kotlin работает на JVM: исходник → байт-код → виртуальная машина. Чем компилировать и как запускать программу из консоли.
- Переменные: val и var
Различие val и var в Kotlin, неизменяемость, вывод типов и явное указание типа. Почему стоит предпочитать val.
- Строки и строковые шаблоны
Строки в Kotlin: шаблоны $name и ${выражение}, многострочные строки, конкатенация и полезные методы строк.
- Числа и арифметика
Числовые типы Kotlin: Int, Long, Double, целочисленное деление, остаток, преобразования типов через toInt/toDouble.
- Что такое Kotlin и зачем он нужен
2 Null-safety и управление потоком
- Null-safety: nullable-типы и оператор ?.
Как Kotlin защищает от NullPointerException: nullable-типы со знаком ?, безопасный вызов ?. и его роль в безопасном коде.
- Операторы ?:, !! и умные приведения
Элвис-оператор ?: для значения по умолчанию, оператор !! и его опасность, smart cast после проверки на null.
- if и when как выражения
if и when в Kotlin возвращают значение: ветвления как выражения, when с условиями и диапазонами, замена switch.
- Циклы и диапазоны (ranges)
Циклы for и while в Kotlin, диапазоны 1..10, until, downTo, step и итерация по коллекциям и индексам.
- Null-safety: nullable-типы и оператор ?.
3 Функции и лямбды
- Функции: объявление и параметры по умолчанию
Объявление функций fun в Kotlin, типы параметров и возврата, однострочные функции с =, параметры по умолчанию и именованные аргументы.
- Лямбды — функции как значения
Лямбда-выражения в Kotlin: синтаксис в фигурных скобках, параметр it, передача функций в аргументах и хранение в переменных.
- Функции высшего порядка
Функции высшего порядка в Kotlin: приём функций как параметров, возврат функций, типы функций и ссылки на функции через ::.
- Функции: объявление и параметры по умолчанию
4 Коллекции
- List, Set и Map
Три вида коллекций Kotlin: List (упорядоченный список), Set (множество без дублей), Map (пары ключ-значение), изменяемые и read-only варианты.
- map, filter и преобразования
Функции обработки коллекций в Kotlin: map для преобразования, filter для отбора, цепочки вызовов, sortedBy, take и другие операции.
- fold, reduce и агрегация
Свёртка коллекций в Kotlin: fold с начальным значением, reduce, готовые агрегаты sum/max/min, groupBy для группировки.
- List, Set и Map
5 Классы и ООП
- Классы и конструкторы
Объявление классов в Kotlin: первичный конструктор, свойства val/var в конструкторе, блок init и методы класса.
- data class и object
data class в Kotlin для хранения данных: автогенерация equals, toString, copy. object для синглтонов и companion object для статики.
- Наследование и интерфейсы
Наследование классов в Kotlin: open, override, абстрактные классы и интерфейсы, реализация нескольких интерфейсов.
- sealed class и иерархии
sealed class в Kotlin: закрытая иерархия известных подтипов, исчерпывающий when без else, моделирование состояний и результатов.
- Классы и конструкторы
6 Расширения, ошибки и корутины
- Extension functions
Функции-расширения в Kotlin: добавление методов к существующим типам без наследования, ключевое слово this и область видимости.
- Обработка ошибок
Исключения в Kotlin: try/catch/finally, try как выражение, throw, отсутствие проверяемых исключений и идиомы безопасной обработки.
- Введение в корутины
Обзорное введение в корутины Kotlin: suspend-функции, launch, асинхронность без потоков, неблокирующее ожидание delay.
- Extension functions