10 главных конструкций языка Kotlin

Почти как Java, но есть отличия.

10 главных конструкций языка Kotlin

Чтобы быстро начать программировать на языке, достаточно знать несколько основных конструкций и общих правил написания кода. Со временем вы освоите все нюансы, а на старте можно использовать что-то попроще.

Если вы не знаете, зачем нужен Kotlin и что на нём программируют, почитайте нашу статью про Kotlin. А если знаете — вот вам краткий справочник по основам языка.

Комментарии


Переменные


Ввод и вывод


Присваивание и сравнение


Условный оператор if


Оператор множественного выбора when


Циклы


Функции


Классы


Объекты

👉 В Kotlin будет много конструкций, похожих на Java. Это нормально, потому что Kotlin работает тоже поверх виртуальной машины JVM, как и Java.

Точка с запятой в Котлине не нужна.

Комментарии

Всё как обычно — есть однострочные и многострочные комментарии:

// Это однострочный комментарий
// Для каждой строки нужно добавлять его отдельно
/* А это — многострочный
его можно сделать любой длины,
если в начале и в конце поставить нужные символы */

Многие программисты ругают Kotlin за то, что ключевые слова для переменной и константы отличаются всего на одну букву:

val — объявляет константу

var — объявляет переменную

Из-за этого легко ошибиться и сделать константу вместо переменной и наоборот.

val a: Int = 1 // можно сразу указать тип константы
val b = 1   // а можно не указывать, тогда тип назначится автоматически

val c: Int  // когда константа сразу не получает значение, нужно обязательно указать её тип
c = 1       // этот тип будет использоваться при объявлении константы

var x = 5 // здесь тип тоже назначается автоматически
var y: Int  // указываем вручную, что у нас переменная целочисленного типа

Ввод и вывод

Чтобы ввести что-то с клавиатуры, нам нужна переменная, где будет храниться результат ввода и команда readLine(). Эта команда ждёт, когда пользователь введёт любые данные и нажмёт Enter. После этого всё, что ввёл пользователь, отправляется в ту переменную.

Для вывода используются команды print() и println() — первая оставляет курсор на той же строке, а вторая после вывода переводит курсор на новую строку.

Чтобы вывести значение переменной в команде вывода, перед переменной ставят знак доллара:

var s // переменная, куда мы отправим результат ввода
print("Напишите что-нибудь: ") // выводим фразу и оставляем курсор на той же строке
s = readLine() // читаем данные с клавиатуры
println("Вот что вы только что ввели: $s") // выводим нашу фразу и значение переменной

Присваивание и сравнение

Всё так же, как в Java, но без точек с запятой:

// это присваивание
x = 10
// а это — сравнение x и 10
// результат сравнения отправляется в переменную b
var bol: Boolean
b = (x == 10)

Условный оператор if

Работает как обычно: сначала проверяется условие, и если оно истинно — выполняется код, который идёт после условия. Если результат проверки ложный — выполняется код, написанный после else, или не выполняется ничего, если такого блока в условии нет. Условие пишется в скобках, фигурные скобки можно не писать, если нужно выполнить только одну команду.

if (a > b) // проверяем условие
    s = a + 10 // одна команда, поэтому можно без фигурных скобок
  else { // если условие ложно, то делаем то, что написано в этом блоке
  	s = a - 10 // раз больше одной команды, то ставим фигурные скобки
  	b = b - 5
  }

Оператор множественного выбора when

Аналог классического Case или Switch из других языков программирования. Команда смотрит на значение переменной, которое к ней поступило, и сравнивает это значение со своим списком вариантов. Если есть совпадение — выполняется нужная команда.

var answer = readline() // получаем ответ от пользователя
when(answer){ // проверяем ответ по списку
    "Да" -> println("Правильный ответ")
    "Нет" -> {
    	 println("Неправильный ответ")
    	 count -= 1
    	}
    "Не знаю" -> count -= 2
    else -> println("Ответ не распознан, повторите снова")

}

Циклы

Проще всего работать с циклом for: достаточно указать имя переменной цикла и диапазон, в котором она будет меняться:

for (i in 1..6) {
    print(“$i “)
}

При желании можно указать шаг цикла внутри диапазона (по умолчанию он равен единице):

for (i in 1..6 step 2) {
    print(“$i “) // на экране появятся числа 1, 3 и 5
}

Циклы с предусловием и с постусловием выглядят и работают как в обычном Java:

sum = 1
do { // начало цикла
    sum = sum + (sum + 1) // тело цикла
} while (sum < 1) // проверка условия

// и то же самое с циклом while
sum = 1
while (sum < 1) { // проверка условия
    sum = sum + (sum + 1) // тело цикла
}

Функции

У функций в Kotlin полная свобода:

  • можно возвращать значение, а можно и не возвращать;
  • функции могут иметь свой тип, а могут и не иметь;
  • функции могут работать как переменные;
  • функции можно перегружать почти как операторы в C++.

👉 А ещё в Kotlin, как и в Java, каждая программа состоит из функций и каждая команда должна быть внутри какой-то функции. Основная функция программы называется main.

Самое простое объявление и использование функций в Kotlin выглядит так:

fun printHello() { //объявляем новую функцию
    println("Привет, это журнал Код!") // выводим приветствие
}
 
fun main() { // основная функция в каждой программе 
    printHello() // Вызываем нашу новую функцию
}

Классы

Классы в Котлине поддерживают полноценные конструкторы и инициализации, но для старта достаточно объявить имя класса и его содержимое:

class Client(val name: String, var bonus: Int, val sity: String) { //объявляем класс с тремя свойствами
    fun printBonus() { // добавляем функцию внутрь класса
    	println("У клиента $bonus бонусных баллов")
    }
}

Объекты

Как и в большинстве ООП-языков, для создания нового объекта достаточно указать класс, от которого произойдёт объект. После этого с объектом можно работать по всем правилам объектно ориентированного программирования:

class Client(val name: String, var bonus: Int, val sity: String) { //объявляем класс с тремя свойствами
fun printBonus() { // добавляем функцию внутрь класса
    	println("У клиента $bonus бонусных баллов")
    }
}

var ivanov = Client("Сергей Иванов", 500, "Санкт-Петербург") // создаём новый объект с покупателем
println(ivanov.name) // выводим его имя
println(ivanov.sity) // и его город
ivanov.bonus() // используем встроенную в класс функцию, чтобы узнать количество бонусных баллов

Текст и иллюстрации:

Михаил Полянин

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

Кирилл Климентьев

Через год — лучше работа, выше зарплата
В «Яндекс Практикуме» становятся разработчиками с нуля. Выберите язык — веб, Python, Java, C++ — и учитесь. Джуны зарабатывают от 80 000 ₽, мидлы — от 150 000 ₽. Дальше — программы трудоустройства и компенсация, если пойдёте в Яндекс.
Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата Через год — лучше работа, выше зарплата
Вам может быть интересно
iTerm2: модный терминал маковода
iTerm2: модный терминал маковода

Как установить и начать пользоваться.

easy
Владимир Олохтонов о работе старшего разработчика в Авито
Владимир Олохтонов о работе старшего разработчика в Авито

Путь от монтажника локальных сетей до инженера машинного обучения.

easy
Зачем нужен Scala?
Зачем нужен Scala?

Разбираем, почему это не самый популярный язык.

easy
Почему второй язык программирования выучить проще, чем первый?
Почему второй язык программирования выучить проще, чем первый?

Секрет — в знании алгоритмов, а не синтаксиса

easy
Что такое Site Reliability Engineering
Что такое Site Reliability Engineering

И кто такой SRE-инженер

easy
SQLite — самая простая база данных, которая работает везде
SQLite — самая простая база данных, которая работает везде

На вашем смартфоне она тоже есть

medium
Что такое пинг и как его проверить
Что такое пинг и как его проверить

Путешествие туда и обратно

easy
Востребованные языки программирования в 2026 году
Востребованные языки программирования в 2026 году

Выбираем стек по уму

easy
Тестировщик: кто это такой, что он делает и как им стать
Тестировщик: кто это такой, что он делает и как им стать

Что нужно уметь и сколько можно заработать поиском ошибок

easy
easy