--- title: Kotlin description: Полное пособие по Kotlin — синтаксис, ООП, корутины, инструментарий tags: - kotlin --- Статически типизированный язык от JetBrains, работающий на [JVM](../Программирование%20на%20Java/JVM/JVM.md), а также компилируемый в JavaScript, WebAssembly и нативный код. - Первый релиз - 2011, стабильная 1.0 - 2016 - Официальный язык разработки для Android с 2019 - Полная двусторонняя совместимость с Java: один проект может содержать оба языка - Текущая версия - 2.4.x, компилятор K2 по умолчанию Главные отличия от Java: [null-безопасность](Синтаксис%20и%20типы/Null-безопасность/Null-безопасность.md) на уровне типов, [корутины](Корутины/Корутины.md) вместо потоков, выражения вместо инструкций, отсутствие проверяемых исключений, в 2-3 раза меньше кода на ту же задачу. ## Маршрут Последовательность для изучения с нуля. Каждая заметка заканчивается ссылкой `Далее:`, так что можно просто идти по цепочке. 1. [Hello World!](Синтаксис%20и%20типы/Базовый%20синтаксис/Hello%20World!.md) - начало 2. [Null-безопасность](Синтаксис%20и%20типы/Null-безопасность/Null-безопасность.md) - ядро системы типов 3. [ООП](ООП/ООП.md) - классы и объекты 4. [Коллекции](Коллекции/Коллекции.md) - структуры данных 5. [Функции высшего порядка](Функциональный%20Kotlin/Функции%20высшего%20порядка.md) - функциональный стиль 6. [Корутины](Корутины/Корутины.md) - асинхронность ## Синтаксис и типы ### Базовый синтаксис - [Hello World!](Синтаксис%20и%20типы/Базовый%20синтаксис/Hello%20World!.md) - [Типы данных](Синтаксис%20и%20типы/Базовый%20синтаксис/Типы%20данных.md) - [Переменные](Синтаксис%20и%20типы/Базовый%20синтаксис/Переменные.md) - [Операторы и выражения](Синтаксис%20и%20типы/Базовый%20синтаксис/Операторы%20и%20выражения.md) - [Условные конструкции](Синтаксис%20и%20типы/Базовый%20синтаксис/Условные%20конструкции.md) - [Циклы и диапазоны](Синтаксис%20и%20типы/Базовый%20синтаксис/Циклы%20и%20диапазоны.md) - [Строковые шаблоны и вывод](Синтаксис%20и%20типы/Базовый%20синтаксис/Строковые%20шаблоны%20и%20вывод.md) - [Пакеты и импорты](Синтаксис%20и%20типы/Базовый%20синтаксис/Пакеты%20и%20импорты.md) ### Null-безопасность - [Null-безопасность](Синтаксис%20и%20типы/Null-безопасность/Null-безопасность.md) - [Операторы null-безопасности](Синтаксис%20и%20типы/Null-безопасность/Операторы%20null-безопасности.md) - [Умные приведения](Синтаксис%20и%20типы/Null-безопасность/Умные%20приведения.md) - [Платформенные типы](Синтаксис%20и%20типы/Null-безопасность/Платформенные%20типы.md) ### Работа с данными - [Строки](Синтаксис%20и%20типы/Работа%20с%20данными/Строки.md) - [Char](Синтаксис%20и%20типы/Работа%20с%20данными/Char.md) - [Числа и переполнение](Синтаксис%20и%20типы/Работа%20с%20данными/Числа%20и%20переполнение.md) - [Массивы](Синтаксис%20и%20типы/Работа%20с%20данными/Массивы.md) - [Функции](Синтаксис%20и%20типы/Работа%20с%20данными/Функции.md) - [Лямбды и функциональные типы](Синтаксис%20и%20типы/Работа%20с%20данными/Лямбды%20и%20функциональные%20типы.md) - [Деструктуризация](Синтаксис%20и%20типы/Работа%20с%20данными/Деструктуризация.md) - [Приведение типов](Синтаксис%20и%20типы/Работа%20с%20данными/Приведение%20типов.md) ### Базовые типы ООП - [Any, Unit, Nothing](Синтаксис%20и%20типы/Базовые%20типы%20ООП/Any,%20Unit,%20Nothing.md) - [Data class](Синтаксис%20и%20типы/Базовые%20типы%20ООП/Data%20class.md) - [Enum class](Синтаксис%20и%20типы/Базовые%20типы%20ООП/Enum%20class.md) - [Sealed class и interface](Синтаксис%20и%20типы/Базовые%20типы%20ООП/Sealed%20class%20и%20interface.md) - [Value class](Синтаксис%20и%20типы/Базовые%20типы%20ООП/Value%20class.md) - [Object и companion object](Синтаксис%20и%20типы/Базовые%20типы%20ООП/Object%20и%20companion%20object.md) - [Typealias](Синтаксис%20и%20типы/Базовые%20типы%20ООП/Typealias.md) - [equals, hashCode и toString](Синтаксис%20и%20типы/Базовые%20типы%20ООП/equals,%20hashCode%20и%20toString.md) ## ООП - [ООП](ООП/ООП.md) - [Классы и конструкторы](ООП/Классы%20и%20конструкторы.md) - [Свойства](ООП/Свойства.md) - [Инициализация](ООП/Инициализация.md) - [Модификаторы видимости](ООП/Модификаторы%20видимости.md) - [Наследование](ООП/Наследование.md) - [Переопределение](ООП/Переопределение.md) - [Абстрактные классы](ООП/Абстрактные%20классы.md) - [Интерфейсы](ООП/Интерфейсы.md) - [Делегирование](ООП/Делегирование.md) - [Вложенные и внутренние классы](ООП/Вложенные%20и%20внутренние%20классы.md) - [Полиморфизм](ООП/Полиморфизм.md) ## Исключения - [Система исключений](Исключения/Система%20исключений.md) - [Result и runCatching](Исключения/Result%20и%20runCatching.md) - [Проверки и контракты](Исключения/Проверки%20и%20контракты.md) ## Коллекции - [Коллекции](Коллекции/Коллекции.md) - [List, Set, Map](Коллекции/List,%20Set,%20Map.md) - [Изменяемость](Коллекции/Изменяемость.md) - [Операции](Коллекции/Операции.md) - [Sequence](Коллекции/Sequence.md) - [Коллекции под капотом](Коллекции/Коллекции%20под%20капотом.md) ## Дженерики - [Параметрический полиморфизм](Дженерики/Параметрический%20полиморфизм.md) - [Вариантность](Дженерики/Вариантность.md) - [Проекции типов](Дженерики/Проекции%20типов.md) - [Reified и inline](Дженерики/Reified%20и%20inline.md) ## Функциональный Kotlin - [Функции высшего порядка](Функциональный%20Kotlin/Функции%20высшего%20порядка.md) - [Inline-функции](Функциональный%20Kotlin/Inline-функции.md) - [Функции-расширения](Функциональный%20Kotlin/Функции-расширения.md) - [Scope-функции](Функциональный%20Kotlin/Scope-функции.md) - [Инфиксные и операторные функции](Функциональный%20Kotlin/Инфиксные%20и%20операторные%20функции.md) - [Receivers и context parameters](Функциональный%20Kotlin/Receivers%20и%20context%20parameters.md) - [DSL](Функциональный%20Kotlin/DSL.md) - [Паттерны проектирования](Функциональный%20Kotlin/Паттерны%20проектирования.md) ## Корутины - [Корутины](Корутины/Корутины.md) - [Suspend-функции](Корутины/Suspend-функции.md) - [Структурированная конкурентность](Корутины/Структурированная%20конкурентность.md) - [Билдеры корутин](Корутины/Билдеры%20корутин.md) - [Диспетчеры и контекст](Корутины/Диспетчеры%20и%20контекст.md) - [Отмена и таймауты](Корутины/Отмена%20и%20таймауты.md) - [Исключения в корутинах](Корутины/Исключения%20в%20корутинах.md) - [Flow](Корутины/Flow.md) - [StateFlow и SharedFlow](Корутины/StateFlow%20и%20SharedFlow.md) - [Channels](Корутины/Channels.md) - [Разделяемое состояние](Корутины/Разделяемое%20состояние.md) - [Корутины против потоков](Корутины/Корутины%20против%20потоков.md) ## Взаимодействие с Java - [Взаимодействие с Java](Взаимодействие%20с%20Java/Взаимодействие%20с%20Java.md) - [Java из Kotlin](Взаимодействие%20с%20Java/Java%20из%20Kotlin.md) - [Kotlin из Java](Взаимодействие%20с%20Java/Kotlin%20из%20Java.md) - [Kotlin в байт-коде](Взаимодействие%20с%20Java/Kotlin%20в%20байт-коде.md) ## Инструментарий - [Инструментарий](Инструментарий/Инструментарий.md) - [kotlinc](Инструментарий/kotlinc.md) - [Gradle и Kotlin DSL](Инструментарий/Gradle%20и%20Kotlin%20DSL.md) - [Структура проекта](Инструментарий/Структура%20проекта.md) - [Компилятор K2](Инструментарий/Компилятор%20K2.md) - [KSP](Инструментарий/KSP.md) - [Линтеры и формат](Инструментарий/Линтеры%20и%20формат.md) ## Тестирование - [Тестирование](Тестирование/Тестирование.md) - [kotlin.test и JUnit 5](Тестирование/kotlin.test%20и%20JUnit%205.md) - [Kotest](Тестирование/Kotest.md) - [MockK](Тестирование/MockK.md) - [Тестирование корутин](Тестирование/Тестирование%20корутин.md) ## Рефлексия - [Рефлексия](Рефлексия/Рефлексия.md) - [Аннотации](Рефлексия/Аннотации.md)