Основной учебник Kotlin 2
Начало
Введение
Kotlin и Java
Java-машина
Запуск в онлайн-редакторе
Запуск на компьютере
Разбор первой программы
Несколько команд
Однострочные комментарии
Многострочные комментарии
Ошибки в коде
Литералы
Операнды
Переменные
Введение
Объявление переменной
Имена переменных
Изменение значения
Несколько переменных
Копирование значения
Неизменяемая переменная
Переменная по умолчанию
Повторное объявление
Зарезервированные слова
Числа
Введение
Байты и диапазон
Целые типы
Дробные типы
Запись целых
Запись дробных
Тип можно не указывать
Математические операции
Целочисленное деление
Операции с переменными
Дроби
Операции с Float
Отрицательные числа
Остаток от деления
Деление на ноль
Бесконечность
Нечисло
Приоритет операций
Равный приоритет
Группирующие скобки
Сокращенные операции
Инкремент и декремент
Префикс и постфикс
Отделение разрядов
Экспоненциальная запись
Неточные вычисления
Укажите тип
Практика
Конвертация типов
Разные типы
Преобразование в Double
Преобразование в Float
Преобразование в Long
Преобразование в ULong
Преобразование в Int
Преобразование в UInt
Преобразование в Short
Преобразование в UShort
Преобразование в Byte
Преобразование в UByte
Узкие целые
Переполнение
Практика
Строки
Введение
Юникод
Тип String
Сложение строк
Вставка через сложение
Интерполяция
Число в строку
Строка в Int
Строка в Long
Строка в Double
Строка в Float
Строка в UInt
Строка в узкое целое
Длина строки
Перевод строки
Экранирование спецсимволов
Практика
Символы
Введение
Тип Char
Символ и строка
Несколько символов в строку
Символ из строки
Цифра в число
Число в символ цифры
Код символа
Соседний символ
Сумма цифр числа
Практика
Логические значения
Введение
Логические значения
Логическое И
Логическое ИЛИ
Отрицание
Приоритет логических операторов
Группировка логических связок
Практика
Условия
Введение
Конструкция if-else
Операторы больше и меньше
Проверка на равенство
Проверка на неравенство
Сравнение переменных
Равенство строк
Проверка символов строки
Равенство строк и чисел
Логическое И
Логическое ИЛИ
Условие с логическим значением
Необязательность конструкции else
Необязательность фигурных скобок
Проблема необязательности скобок
Конструкция else if
Вложенные конструкции if-else
Область видимости
Выражение if
Конструкция when
Выражение when
Несколько значений в when
Диапазон
Диапазоны в when
Конструкция без аргумента
Типы в when
Проверка остатка от деления
Сравнение NaN
Практика
Циклы
Введение
Цикл repeat
Номер повтора
Цикл for
Генерация чисел
Диапазон без последнего значения
Диапазон с открытым концом
Генерация чисел с шагом
Диапазон без последнего значения с шагом
Генерация чисел в обратном порядке
Обратный диапазон с шагом
Генерация символов
Генерация символов с шагом
Генерация символов в обратном порядке
Накопление результата в цикле
Цикл for и условие if
Инструкция break
Инструкция continue
Цикл while
Цикл while без счетчика
Условие if в цикле while
Цикл do while
Работа с флагами
Практика
Массивы
Введение
Создание массива
Массив чисел
Массив дробей
Массив строк
Массив символов
Отдельный элемент массива
Длина массива
Последний элемент массива
Изменение элементов массива
Инкремент и декремент
Условия и первый элемент
Условия и последний элемент
Условия и длина массива
Наличие элемента
Цикл по массиву
Цикл по индексам массива
Сумма элементов массива
Накопление результата в массиве
Условие в цикле по массиву
Подсчет элементов массива
Изменение массива в цикле
Создание массива в цикле
Типизация цикла
Добавление элемента
Объединение массивов
Примитивные массивы
Практика на типы массивов
Практика
Списки
Введение
Неизменяемый список
Изменяемый список
Список чисел
Список строк
Пустой список
Отдельный элемент списка
Последний элемент списка
Изменение элемента списка
Длина списка
Проверка пустоты списка
Наличие элемента в списке
Индекс элемента списка
Добавление элемента в конец
Добавление элемента по индексу
Добавление нескольких элементов
Добавление массива в список
Удаление элемента по значению
Удаление элемента по индексу
Удаление последнего элемента
Очистка списка
Объединение списков
Массив в список
Список в массив
Обратный порядок элементов
Сортировка списка
Цикл по списку
Цикл по индексам списка
Накопление результата по списку
Условие в цикле по списку
Подсчет элементов списка
Заполнение списка в цикле
Типизация цикла
Новый список из старого
Фильтрация списка
Практика
Карты
Введение
Неизменяемая карта
Изменяемая карта
Пары ключ-значение
Пустая карта
Значение по ключу
Отсутствующий ключ
Изменение значения
Добавление пары
Удаление по ключу
Длина карты
Проверка пустоты карты
Наличие ключа
Наличие значения
Все ключи
Все значения
Цикл по карте
Цикл по ключам
Цикл по значениям
Накопление по карте
Условие в цикле по карте
Изменение значений в цикле
Типизация цикла
Очистка карты
Практика
Множества
Введение
Неизменяемое множество
Изменяемое множество
Повторяющиеся элементы
Множество чисел
Множество строк
Пустое множество
Наличие элемента
Добавление элемента
Добавление дубля
Добавление нескольких элементов
Удаление элемента
Длина множества
Проверка пустоты множества
Очистка множества
Список в множество
Массив в множество
Множество в список
Цикл по множеству
Типизация цикла
Объединение множеств
Пересечение множеств
Разность множеств
Сравнение множеств
Практика
Многомерность
Введение
Двухмерный массив
Строки двухмерного массива
Элемент двухмерного массива
Неровный двухмерный массив
Двухмерный список
Элемент двухмерного списка
Изменение элемента
Цикл по двухмерному массиву
Цикл по двухмерному списку
Сумма элементов
Произведение элементов
Склейка элементов в строку
Подсчет элементов
Условие во вложенном цикле
Суммы строк
Суммы столбцов
Главная диагональ
Заполнение двухмерного списка
Заполнение двухмерного массива
Трехмерный массив
Элемент трехмерного массива
Цикл по трехмерному массиву
Трехмерный список
Список массивов
Массив списков
Карта со списками
Карта с массивами
Список карт
Пирамидка в цикле
Практика
Функции
Введение
Создание функции
Вызов функции
Несколько вызовов
Параметры функции
Несколько параметров
Возврат значения
Последовательный вызов
Тип результата
Функции без результата
Досрочный return
Возврат по условию
Возврат Boolean
Возврат строки
Список параметром
Массив параметром
Карта параметром
Значения по умолчанию
Именованные аргументы
Порядок аргументов
Переменное число аргументов
Перегрузка функций
Короткая запись функции
Рекурсия
Практика
Области видимости
Введение
Локальные переменные
Переменные функции
Внешние переменные
Одинаковые имена
Область блока
Область цикла
Глобальные переменные
Локальные функции
Практика
Лямбды
Введение
Создание лямбды
Вызов лямбды
Параметр лямбды
Несколько параметров
Результат лямбды
Тип лямбды
Лямбда в переменной
Параметр it
Без параметров
Лямбда параметром
Последний аргумент
Блок в repeat
Метод forEach
Метод filter
Метод map
Методы any и all
Метод sortedBy
Практика
Математические функции
Математические константы
Модуль числа
Знак числа
Минимум и максимум
Округление
Округление до Int и Long
Степень
Корень
Ограничение числа
Проверка дробных чисел
Случайные числа
Случайное число из диапазона
Практика
Текстовые функции
Длина строки
Символы строки
Регистр строки
Первая буква
Проверка строки
Поиск в строке
Индексы совпадений
Подсчет символов
Замена в строке
Удаление частей
Обрезка пробелов
Разбиение строки
Подстроки
Дополнение строки
Повторение строки
Строка в число
Строка в Boolean
Регистр символа
Проверка символа
Заглавность символа
Код символа
Цифра-символ
Практика
Функции коллекций
Размер коллекции
Проверка на пустоту
Наличие элементов
Получение элементов
Получение по индексу
Индексы элементов
Сумма и среднее
Минимум и максимум
Отбор элементов
Проверка элементов
Преобразование элементов
Разворачивание вложенности
Сортировка
Обратный порядок
Перемешивание
Случайный элемент
Взять часть
Отбросить часть
Срез коллекции
Разбиение на группы
Уникальные элементы
Коллекция в строку
Накопление результата
Группировка
Разделение на две части
Склейка коллекций
Создание карты
Добавление без изменения
Удаление без изменения
Операции множеств
Ключи карты
Значения карты
Пары карты
Отбор в карте
Преобразование карты
Практика
Null-безопасность
Введение
Значение null
Nullable-типы
Проверка на null
Оператор ?.
Оператор ?:
Оператор !!
Безопасный let
Nullable в списках
Nullable в картах
Практика
Исключения
Введение
try и catch
Типы исключений
Несколько catch
Блок finally
Выбрасывание исключения
try как выражение
Функция с исключением
Практика
Дата и время
Введение
Дата
Время
Дата и время
Текущая дата
Текущее время
Текущие дата и время
Получение дня недели
Получение месяца
Получение года
Части даты
Создание даты из частей
Форматирование даты
Форматирование времени
Форматирование даты и времени
Разбор строки в дату
Разбор строки во время
Разбор строки в дату и время
Разность двух дат
Разность времени
Период между датами
Длительность
Прибавление дней
Прибавление месяцев
Прибавление времени
Вычитание из даты
Сравнение дат
Високосный год
Формат epoch
Дата из epoch
Разность эпох
Часовой пояс
Момент времени
Задержка операции
Практика
Файлы
Введение
Объект File
Путь к файлу
Абсолютный путь
Имя файла
Расширение файла
Проверка существования
Проверка на файл
Проверка на папку
Создание файла
Чтение текста
Чтение строк
Чтение байтов
Запись текста
Запись строк
Запись байтов
Добавление текста
Добавление байтов
Удаление файла
Копирование файла
Переименование файла
Родительская папка
Создание папки
Создание вложенных папок
Список файлов
Обход папки
Рекурсивное копирование
Рекурсивное удаление
Относительный путь
Склейка путей
Нормализация пути
Права на файл
Время изменения
Размер файла
Практика