Added kotlin guide. (WIP) (15.10.26)
This commit is contained in:
@@ -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)
|
||||
Reference in New Issue
Block a user