- Объяснять разницу между
valиvar - Использовать типы
Int,Long,Double,Boolean,CharиString - Выполнять арифметические действия и преобразовывать типы
- Писать строковые шаблоны с
$и${}
Игра на телефоне помнит твоё имя, очки, уровень и то, включён ли звук. Это данные разного вида: текст, целое число, ответ «да/нет». Программа хранит такие данные в переменных, а Kotlin внимательно следит за типом каждой переменной, чтобы ты по ошибке не разделил текст на число.
val и var
В Kotlin переменная создаётся одним из двух слов. val (value — значение) — переменная только для чтения: значение присваивается ей один раз и потом не меняется. var (variable — переменная) может получить новое значение в любой момент. Значение присваивается знаком =.
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.Основные типы и выведение типов
| Тип | Пример | Что хранит |
|---|---|---|
Int | 15, -3 | целые числа (примерно ±2,1 миллиарда) |
Long | 8_000_000_000L | очень большие целые числа |
Double | 3.14, 2.5 | дробные числа |
Boolean | true, false | истина или ложь |
Char | 'A' | один символ, в одинарных кавычках |
String | "Baku" | текст, в двойных кавычках |
Писать тип каждый раз не нужно: встретив val age = 15, компилятор сам понимает, что age — это Int. Это называется выведением типов (type inference). При желании тип можно указать явно после двоеточия: val age: Int = 15. Чтобы большие числа легче читались, цифры можно разделять подчёркиванием: 1_000_000.
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
Int, поэтому буква L в конце делает число Long.Арифметика и преобразование типов
В Kotlin есть операции +, -, *, / и %, которая даёт остаток от деления. Внимание: при делении двух Int результат тоже Int, а дробная часть отбрасывается — 7 / 2 даёт 3. Если нужен дробный результат, одно из чисел должно быть Double. Kotlin никогда не преобразует типы сам — это делают явно функциями toInt(), toDouble(), toString().
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}.
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() меняют регистр букв:
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.