12 KiB
12 KiB
title, description, tags
| title | description | tags | |
|---|---|---|---|
| Kotlin | Полное пособие по Kotlin — синтаксис, ООП, корутины, инструментарий |
|
Статически типизированный язык от JetBrains, работающий на JVM, а также компилируемый в JavaScript, WebAssembly и нативный код.
- Первый релиз - 2011, стабильная 1.0 - 2016
- Официальный язык разработки для Android с 2019
- Полная двусторонняя совместимость с Java: один проект может содержать оба языка
- Текущая версия - 2.4.x, компилятор K2 по умолчанию
Главные отличия от Java: null-безопасность на уровне типов, корутины вместо потоков, выражения вместо инструкций, отсутствие проверяемых исключений, в 2-3 раза меньше кода на ту же задачу.
Маршрут
Последовательность для изучения с нуля. Каждая заметка заканчивается ссылкой Далее:, так что можно просто идти по цепочке.
- Hello World! - начало
- Null-безопасность - ядро системы типов
- ООП - классы и объекты
- Коллекции - структуры данных
- Функции высшего порядка - функциональный стиль
- Корутины - асинхронность
Синтаксис и типы
Базовый синтаксис
- Hello World!
- Типы данных
- Переменные
- Операторы и выражения
- Условные конструкции
- Циклы и диапазоны
- Строковые шаблоны и вывод
- Пакеты и импорты
Null-безопасность
Работа с данными
- Строки
- Char
- Числа и переполнение
- Массивы
- Функции
- Лямбды и функциональные типы
- Деструктуризация
- Приведение типов
Базовые типы ООП
- Any, Unit, Nothing
- Data class
- Enum class
- Sealed class и interface
- Value class
- Object и companion object
- Typealias
- equals, hashCode и toString
ООП
- ООП
- Классы и конструкторы
- Свойства
- Инициализация
- Модификаторы видимости
- Наследование
- Переопределение
- Абстрактные классы
- Интерфейсы
- Делегирование
- Вложенные и внутренние классы
- Полиморфизм
Исключения
Коллекции
Дженерики
Функциональный Kotlin
- Функции высшего порядка
- Inline-функции
- Функции-расширения
- Scope-функции
- Инфиксные и операторные функции
- Receivers и context parameters
- DSL
- Паттерны проектирования
Корутины
- Корутины
- Suspend-функции
- Структурированная конкурентность
- Билдеры корутин
- Диспетчеры и контекст
- Отмена и таймауты
- Исключения в корутинах
- Flow
- StateFlow и SharedFlow
- Channels
- Разделяемое состояние
- Корутины против потоков