Перейти к содержанию
Educora
Начальный16 мин2 / 14

Переменные, типы и строки

Создавай переменные через `val` и `var`, изучи основные типы и выведение типов, собирай текст с помощью строковых шаблонов.

Проверь себя
В этом уроке ты узнаешь
  • Объяснять разницу между val и var
  • Использовать типы Int, Long, Double, Boolean, Char и String
  • Выполнять арифметические действия и преобразовывать типы
  • Писать строковые шаблоны с $ и ${}

Игра на телефоне помнит твоё имя, очки, уровень и то, включён ли звук. Это данные разного вида: текст, целое число, ответ «да/нет». Программа хранит такие данные в переменных, а Kotlin внимательно следит за типом каждой переменной, чтобы ты по ошибке не разделил текст на число.

val и var

В Kotlin переменная создаётся одним из двух слов. val (value — значение) — переменная только для чтения: значение присваивается ей один раз и потом не меняется. var (variable — переменная) может получить новое значение в любой момент. Значение присваивается знаком =.

Kotlin
fun main() {
    val name = "Aysel"
    var score = 10
    println(name)
    println(score)
    score = score + 5
    score += 3
    println(score)
}
Ожидаемый результат
Aysel
10
18
Запись score += 3 означает score = score + 3.

Основные типы и выведение типов

ТипПримерЧто хранит
Int15, -3целые числа (примерно ±2,1 миллиарда)
Long8_000_000_000Lочень большие целые числа
Double3.14, 2.5дробные числа
Booleantrue, falseистина или ложь
Char'A'один символ, в одинарных кавычках
String"Baku"текст, в двойных кавычках

Писать тип каждый раз не нужно: встретив val age = 15, компилятор сам понимает, что age — это Int. Это называется выведением типов (type inference). При желании тип можно указать явно после двоеточия: val age: Int = 15. Чтобы большие числа легче читались, цифры можно разделять подчёркиванием: 1_000_000.

Kotlin
fun main() {
    val age: Int = 15
    val height = 1.62
    val isStudent = true
    val grade = 'A'
    val worldPopulation = 8_000_000_000L
    println(age)
    println(height)
    println(isStudent)
    println(grade)
    println(worldPopulation)
}
Ожидаемый результат
15
1.62
true
A
8000000000
8 миллиардов не помещаются в Int, поэтому буква L в конце делает число Long.

Арифметика и преобразование типов

В Kotlin есть операции +, -, *, / и %, которая даёт остаток от деления. Внимание: при делении двух Int результат тоже Int, а дробная часть отбрасывается — 7 / 2 даёт 3. Если нужен дробный результат, одно из чисел должно быть Double. Kotlin никогда не преобразует типы сам — это делают явно функциями toInt(), toDouble(), toString().

Kotlin
fun main() {
    val apples = 7
    val kids = 2
    println(apples / kids)
    println(apples % kids)
    println(apples / 2.0)
    println(apples.toDouble() / kids)
    val price = "25".toInt()
    println(price * 2)
    println(9.99.toInt())
}
Ожидаемый результат
3
1
3.5
3.5
50
9
toInt() не округляет, а просто отбрасывает дробную часть: 9.99 → 9.

Строки и шаблоны

Текст можно склеивать из частей через +, но в Kotlin есть способ удобнее — строковые шаблоны. Внутри строки пишешь $ и имя переменной, и её значение подставляется автоматически. Для целого выражения используются фигурные скобки: ${age + 1}.

Kotlin
fun main() {
    val name = "Murad"
    val city = "Baku"
    val age = 14
    println("$name lives in $city.")
    println("Next year $name will be ${age + 1}.")
    println("The name has ${name.length} letters.")
    println("Hello, " + name + "!")
}
Ожидаемый результат
Murad lives in Baku.
Next year Murad will be 15.
The name has 5 letters.
Hello, Murad!

У строк много полезных функций. length даёт длину, [0] берёт первый символ (счёт начинается с нуля), а uppercase() и lowercase() меняют регистр букв:

Kotlin
fun main() {
    val word = "Kotlin"
    println(word.length)
    println(word.uppercase())
    println(word.lowercase())
    println(word[0])
    println(word.last())
    println(word.contains("lin"))
    println(word.reversed())
    println("ha".repeat(3))
    println("  hello  ".trim() + "!")
}
Ожидаемый результат
6
KOTLIN
kotlin
K
n
true
niltoK
hahaha
hello!

Главное

  • val — только для чтения, а var можно присвоить заново; по возможности выбирай val.
  • Компилятор выводит тип из значения: val x = 2.5 — это Double.
  • Деление двух Int даёт Int (7 / 2 = 3); % даёт остаток.
  • Типы не преобразуются автоматически: используй toInt(), toDouble(), toString().
  • Строковые шаблоны: "$name" подставляет переменную, а "${a + b}" — выражение.

Проверь себя

Вопросов: 10. Каждый правильный ответ приносит XP.

1 / 10
Какое слово создаёт переменную, значение которой потом нельзя изменить?