Основы 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
Анонимные классы обычно являются наследниками других классов и переопределяют один или несколько их методов. Определение анонимного класса – это выражение, возвращающее единственный объект этого класса, который присваивается переменной или передается в функцию.
PDF-версия курса с дополнительными уроками