Основы Kotlin. Курс
Курс-введение в Kotlin для уже имеющих опыт в программировании на других языках или тех, кто знаком с языком на уровне курсов "Kotlin с нуля" и "Введение в объектно-ориентированное программирование на Kotlin".
В данном курсе акцент сделан на изучение особенностей Kotlin, применяемых в практическом программировании, в том числе рассматриваются лямбда-функции, дженерики, дата-классы и др.
Обновлено: февраль, 2023 г.
Содержание курса
Переменные и базовые классы данных
В Kotlin переменные бывают двух разновидностей - неизменяемыеval
и изменяемыеvar
. В Kotlin все типы данных являются классами. К основным типам относятся числовые, булевый, строковый, символьный и массивы. В Kotlin обычные типы не поддерживаютnull
. Для поддержкиnull
есть nullable-типы.Операторы
?.
,?:
и!!
Для проверки значения nullable-переменной, приведения значения к обычному типу и других операций используются операторы безопасного вызова?.
, "элвиса"?:
, "не null"!!
,as?
и ряд функций.Условные выражения. Операторы if и when
В Kotlin есть два условных оператора -if-else
иwhen
(аналог switch). Оба в то же время являются выражениями, так как возвращают результат, который может быть присвоен переменной.Массивы
Массивы как последовательности однотипных данных с фиксированной длиной в Kotlin представляют классыArray
,IntArray
и ряд других. Массивы создаются путем вызова конструкторов классов или соответствующих им функций.Диапазоны, или интервалы, и прогрессии
Последовательности в Kotlin представлены классами диапазонов (интервалов) и прогрессий. Их элементами являются числа или символы. В отличие от диапазонов в прогрессиях элементы могут идти от большего к меньшему значению, а также с шагом.Коллекции - списки, словари и множества
В Kotlin есть три основных разновидности коллекций – списокList
, словарьMap
и множествоSet
. Каждая из них может быть неизменяемой и изменяемой -Mutable
. Для создания коллекций обычно используются встроенные в Kotlin функции, а не конструкторы.Циклы
Циклwhile
с предусловием и постусловием. Циклfor
для обхода элементов коллекций, массивов, строк и других объектов. Также есть функцииrepeat(){}
иforEach{}
.Функции
Обычные функции, функции-члены и функции-расширения. Назначение параметрам функций значений по-умолчанию, использование именованных аргументов.Объектно-ориентированное программирование в Kotlin
Объектно-ориентированное программирование в Kotlin имеет ряд особенностей, связанных с появлением первичного конструктора, у полей – геттеров и сеттеров по-умолчанию. Есть возможность определять методы за пределами класса.Класс данных –
data class
Класс данных -data class
- особая разновидность класса, адаптированная для объектов, состоящих в основном из данных-полей. Дата-классы переопределяют методы классаAny
и определяют несколько своих.Классы перечислений -
enum
Класс-перечислениеenum
содержит в себе упорядоченное множество объектов, созданных от этого класса и связанных с константами.Введение в дженерики – обобщенные классы и функции
В Kotlin можно создавать обобщенные функции и параметризованные классы - дженерики. У таких функций тип параметров и возвращаемых значений заранее не известен и определяется при передаче аргументов.Лямбда-выражения
В Kotlin широко используются лямбда-выражения. С их помощью в другие функции передается код для обработки данных, что позволяет делать функции более гибкими. Лямбда-выражения определяются в фигурных скобках, могут иметь параметры и возвращают значения.Функции высшего порядка
Функции высшего порядка могут как принимать функции в качестве аргументов, так и возвращать функции. Эти принимаемые и возвращаемые функции обычно являются лямбда-выражениями. Kotlin поддерживает функциональное программирование в полной мере.
Дополнительные уроки
Функция let
Функцияlet
применяется к объекту как метод и принимает лямбда-выражение, выполняющее действия над объектом. Отличительной особенностьюlet
от других scope-функций является возвращаемое значение.Синглтон – объект-одиночка
Singlton – класс, от которого создается один единственный объект, используемый для хранения общих данных, состояния программы, содержащий логику программы.Анонимные классы в Kotlin
Анонимные классы обычно являются наследниками других классов и переопределяют один или несколько их методов. Определение анонимного класса – это выражение, возвращающее единственный объект этого класса, который присваивается переменной или передается в функцию.