Variáveis e tipos de dados em Kotlin
Что это и зачем?
Представь, что ты играешь в компьютерную игру. У тебя есть инвентарь: меч, 5 золотых монет, карта сокровищ. В программировании то же самое — нам нужно где-то хранить информацию, чтобы потом её использовать. Переменные — это как коробки с наклейками. На наклейке написано имя (например, золото), а внутри лежит значение (например, 5).
Типы данных — это правила, что можно класть в коробку. В одну коробку можно класть только числа, в другую — только текст, в третью — только «да» или «нет». Зачем это нужно? Чтобы компьютер не запутался: если ты скажешь «сложи 2 и 3», он поймёт, что это числа. А если скажешь «сложи "Привет" и 3» — он удивится, потому что текст и числа складывать нельзя.
В Kotlin переменные бывают двух видов: val (неизменяемые, как книга — один раз написали и не меняете) и var (изменяемые, как блокнот — можно стирать и писать заново).
Синтаксис и примеры кода
Давай посмотрим, как это работает. Вот простой пример:
val имя: String = "Алиса" // val — нельзя изменить, String — тип для текста
var возраст: Int = 12 // var — можно изменить, Int — целое число
println("Привет, $имя! Тебе $возраст лет.") // $имя подставляет значение переменной
Здесь мы создали две переменные. имя — текст, поэтому тип String. возраст — число, тип Int. Обрати внимание: в Kotlin типы пишутся после двоеточия. А ещё можно не писать тип, если сразу присвоить значение — Kotlin сам догадается:
val город = "Москва" // Kotlin сам понял, что это String
var население = 12_000_000 // Int, нижнее подчёркивание для удобства чтения
Теперь пример с разными типами данных:
val isStudent: Boolean = true // Boolean — только true или false
val среднийБалл: Double = 4.75 // Double — числа с запятой (дробные)
val буква: Char = 'A' // Char — одна буква (в одинарных кавычках)
println("Ученик? $isStudent")
println("Средний балл: $среднийБалл")
println("Первая буква: $буква")
А что, если нужно изменить переменную? Используй var:
var очки = 0
println("Начальные очки: $очки")
очки = 10 // меняем значение
println("После победы: $очки")
очки += 5 // добавляем 5
println("После бонуса: $очки")
Важно: val нельзя изменить. Если попробуешь — компилятор выдаст ошибку:
val константа = 100
// константа = 200 // Ошибка! Нельзя изменить val
Ещё один пример — ввод данных от пользователя:
println("Как тебя зовут?")
val имяПользователя = readLine() // readLine() возвращает String?
println("Приятно познакомиться, $имяПользователя!")
Знак вопроса после String? означает, что переменная может быть null (пустой). Но об этом позже.
Сравнение с Python
В Python переменные объявляются проще — не нужно указывать тип. Вот как выглядит тот же код на Python:
# Python
имя = "Алиса"
возраст = 12
print(f"Привет, {имя}! Тебе {возраст} лет.")
Разница:
- Типы: в Kotlin типы строгие (нельзя смешивать
IntиString), в Python — динамические (можно). - Ключевые слова: в Kotlin
val/var, в Python просто имя = значение. - Неизменяемость: в Kotlin есть
val(как константа), в Python такого нет (но есть кортежи). - Вывод: в Kotlin
println(), в Pythonprint().
Пример с дробными числами:
// Kotlin
val пи: Double = 3.14159
val радиус: Int = 5
val площадь = пи * радиус * радиус // Double * Int = Double
# Python
пи = 3.14159
радиус = 5
площадь = пи * радиус * радиус
В Python всё проще, но Kotlin надёжнее — он не даст случайно сложить число и строку.
Типичные ошибки новичков
- Забыть указать тип или инициализировать:
val x: Int // Ошибка! Нужно присвоить значение
Правильно:val x: Int = 0 - Пытаться изменить val:
val name = "Вася"
name = "Петя" // Ошибка! - Путать String и Char:
val a: Char = "A" // Ошибка! Char — одинарные кавычки
val b: String = 'B' // Ошибка! String — двойные кавычки - Смешивать типы:
val число = 5
val текст = "10"
val сумма = число + текст // Ошибка! Нельзя сложить Int и String
Правильно:val сумма = число + текст.toInt() - Забыть про регистр:
val myVar = 1
println(MyVar) // Ошибка! Имена чувствительны к регистру - Использовать зарезервированные слова:
val val = 5 // Ошибка! val — ключевое слово
Итог
Переменные — это основа любой программы. Ты научился:
- Создавать переменные с помощью
val(неизменяемые) иvar(изменяемые). - Использовать основные типы:
Int,Double,String,Boolean,Char. - Понимать разницу между Kotlin и Python.
- Избегать типичных ошибок.
Запомни главное правило: выбирай val везде, где можно. Это сделает код безопаснее. А если нужно менять — используй var. Типы данных помогают компьютеру понять, что ты хочешь сделать, и не допустить глупых ошибок.
Попробуй сам: напиши программу, которая спрашивает имя и возраст, а потом выводит: "Привет, [имя]! Через год тебе будет [возраст+1] лет." Используй readLine() и преобразование типов.