Added kotlin guide. (WIP) (15.10.26)

This commit is contained in:
2026-10-15 00:24:21 +03:00
parent dc82207723
commit da3ad9dd1a
13 changed files with 2120 additions and 0 deletions
+145
View File
@@ -0,0 +1,145 @@
---
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)