1. Объявление переменных
Давайте еще раз вспомним, как создавать переменные. В Kotlin переменная объявляется так: var имя: Тип или val имя: Тип.
- var (сокращение от variable) — переменная, которой можно присваивать новое значение (изменяемая).
- val (сокращение от value) — переменная, которой можно присвоить значение только один раз (неизменяемая).
Примеры:
| Команда | Пояснение |
|---|---|
|
Создается переменная типа . Такая переменная может хранить текст. |
|
Создается переменная типа . Такая переменная может хранить в себе целые числа. |
|
Создается переменная типа . Такая переменная может хранить дробные числа. |
Нельзя создать две переменные с одинаковыми именами в одном блоке кода. А вот в разных — можно. Это как коробки, стоящие в разных домах. Подробнее о блоках кода — в следующих лекциях.
Еще есть ограничения на имя переменной. С одной стороны, оно может быть любым, с другой — оно не может содержать пробелов, символов +, - и т.д. Лучше всего в имени переменной использовать только латинские буквы и цифры.
И опять напоминаю, что в языке Kotlin играет роль, какие буквы вы пишете — большие или маленькие. var a: Int — это не то же самое, что и var a: int (в Kotlin типа int вообще нет — есть Int).
2. Выведение типа
Kotlin очень умный и старается максимально облегчить вам жизнь. Если вы создаете переменную и сразу присваивайте ей значение, то Kotlin может определить тип переменной исходя из ее значения.
Другими словами, тип переменной можно не писать, если его одозначнго можно определить по значнию, которое присвоили переменной. Это экономит время и место. Примеры:
| Компактный код | Длинный код, эквивалентный коду слева |
|---|---|
|
|
|
|
|
|
|
|
|
|
Так гораздо компактнее и понятнее.
Ну а раз с созданием переменных мы уже разобрались, давайте познакомимся с 5 самыми используемыми типами в языке Kotlin. Это типы Int (целые числа), String (текст/строки), Double (вещественные числа), Char (символы) и Boolean (логический тип).
2. Тип Int
В переменной типа Int можно хранить целые числа: 5, -10, 100500. Также над типом Int можно выполнять различные арифметические операции: сложение, вычитание, умножение, деление и другие. Примеры:
val x: Int = 1 // x будет равен 1
val y: Int = x * 2 // y будет равен 2
val z: Int = 5 * y * y + 2 * y + 3 // z будет равен 20+4+3, будет равен 27
val a: Int = 5 // a будет равно 5
val b: Int = 1 // b будет равно 1
val c: Int = (a - b) * (a + b) // c будет равно 4*6, будет равно 24
val a: Int = 64 // a будет равно 64
val b: Int = a / 8 // b будет равно 8
val c: Int = b / 4 // c будет равно 2
val d: Int = c * 3 // d будет равно 6
Если вы в школе не прогуливали математику, то тут вам все должно быть понятно.
3. Тип String
Тип String позволяет хранить текстовые строки. А чтобы задать какую-то текстовую строку, в Kotlin надо написать текст строки, а с обеих сторон поставить двойные кавычки. Пример:
| Код | Пояснение |
|---|---|
|
будет содержать текст |
|
будет содержать текст |
|
будет содержать текст |
Выглядит несложно, правда? Ну если так, тогда вот еще один интересный факт.
Строки в Kotlin можно склеивать с помощью знака плюс — +. Пример:
fun main() {
val s1: String = "Amigo" + " the best" // s1 будет содержать Amigo the best
val s2: String = "" // s2 будет содержать пустую строку — вообще без символов.
val x: Int = 2025
val s3: String = "Amigo" + x // s3 будет содержать Amigo2025
}
Обратите внимание на последний пример: мы сложили строку и число. Тут тоже все просто: число будет преобразовано в строку, затем две строки будут склеены. При сложении строк и чисел всегда получается строка.
4. Double — числа с дробной частью
Double нужен, когда есть дробная часть: цена, температура, средний балл, координаты, проценты. Отличить Double на глаз легко: в записи литерала есть точка. Да, именно точка — в коде пишут 3.14, а не 3,14.
Вот как будут выглядеть вещественные числа в коде:
fun main() {
val heightMeters = 1.78
val coffeeRating = 4.5
println(heightMeters) // 1.78
println(coffeeRating) // 4.5
}
Важно уловить суть: 1.78 — это не «почти целое». Это значение другого типа, и Kotlin будет к нему относиться как к вещественному числу.
5. Boolean — правда/ложь
Boolean — это тип, который хранит только два значения: true или false. На старте он кажется скучным, но это ровно тот кирпичик, из которого потом строятся проверки и логика поведения программы. Сейчас нам важно просто понимать: true/false — это не строки (там нет кавычек) и не числа.
Добавим пару «флагов» в профиль:
fun main() {
val isStudent = true
val likesPineappleOnPizza = false
println(isStudent) // true
println(likesPineappleOnPizza) // false
}
Да, это выглядит слегка философски: «любишь ананас на пицце — false». Но зато прекрасно демонстрирует, что переменная может хранить не только текст и числа.
6. Char — один символ
Char — это один-единственный символ. Он записывается в одинарных кавычках: 'A', '7', '?'. Это не строка. Строка может быть длиной 1 символ ("A"), но это всё равно другой тип.
Kotlin прямо подчёркивает: символы представлены типом Char, а литералы Char пишутся в одинарных кавычках.
Вот как это выглядит в коде:
fun main() {
val firstLetter: Char = 'A'
val separator: Char = '#'
println(firstLetter) // A
println(separator) // #
}
Здесь я намеренно указал тип явно (: Char), чтобы вы увидели форму записи. Обычно Kotlin и так догадается, но иногда явность полезна — особенно когда вы только учитесь читать код.
7. Литералы: как по записи значения понять тип
Когда вы смотрите на код, мозг очень быстро начинает угадывать тип по внешнему виду значения. Это полезный навык: вы меньше путаетесь и быстрее находите ошибки. Kotlin делает примерно то же самое: он анализирует литерал и решает, к какому типу его отнести (или просит вас уточнить).
Удобно держать в голове такую таблицу:
| Как записано значение в коде | Пример | Какой это тип |
|---|---|---|
| Цифры без кавычек и без точки | |
|
| Есть точка в числе | |
|
| Двойные кавычки | |
|
/ |
|
|
| Один символ в одинарных кавычках | |
|
Эта таблица кажется очевидной, но именно на ней чаще всего «спотыкаются» на первом дне: кавычки забыли, кавычки перепутали, поставили запятую вместо точки, написали 'AB' и удивились, почему это не Char.
8. Вывод переменной на экран
Вроде все так очевидно и элементарно. Ну тогда, может, вы сразу догадаетесь, какой командой можно вывести переменную на экран?
На самом деле все просто. Чтобы вывести что-то на экран, мы используем функцию println(), куда в качестве параметра передаем то, что мы выводим.
fun main() {
println("Amigo") // Amigo
println("Ami" + "go") // Amigo
val s1: String = "Amigo"
println(s1) // Amigo
val s2: String = "Am"
println(s2 + "igo") // Amigo
}
Надеюсь, теперь стало немного понятнее. А правильно вы все поняли или нет, мы сейчас проверим. Практика — критерий истины: только с помощью практики можно проверить, хорошо ли вы во всем разобрались.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ