🎯 Kotlin

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(), в Python print().

Пример с дробными числами:

// Kotlin
val пи: Double = 3.14159
val радиус: Int = 5
val площадь = пи * радиус * радиус  // Double * Int = Double
# Python
пи = 3.14159
радиус = 5
площадь = пи * радиус * радиус

В Python всё проще, но Kotlin надёжнее — он не даст случайно сложить число и строку.

Типичные ошибки новичков

  1. Забыть указать тип или инициализировать:
    val x: Int // Ошибка! Нужно присвоить значение
    Правильно: val x: Int = 0
  2. Пытаться изменить val:
    val name = "Вася"
    name = "Петя" // Ошибка!
  3. Путать String и Char:
    val a: Char = "A" // Ошибка! Char — одинарные кавычки
    val b: String = 'B' // Ошибка! String — двойные кавычки
  4. Смешивать типы:
    val число = 5
    val текст = "10"
    val сумма = число + текст // Ошибка! Нельзя сложить Int и String

    Правильно: val сумма = число + текст.toInt()
  5. Забыть про регистр:
    val myVar = 1
    println(MyVar) // Ошибка! Имена чувствительны к регистру
  6. Использовать зарезервированные слова:
    val val = 5 // Ошибка! val — ключевое слово

Итог

Переменные — это основа любой программы. Ты научился:

  • Создавать переменные с помощью val (неизменяемые) и var (изменяемые).
  • Использовать основные типы: Int, Double, String, Boolean, Char.
  • Понимать разницу между Kotlin и Python.
  • Избегать типичных ошибок.

Запомни главное правило: выбирай val везде, где можно. Это сделает код безопаснее. А если нужно менять — используй var. Типы данных помогают компьютеру понять, что ты хочешь сделать, и не допустить глупых ошибок.

Попробуй сам: напиши программу, которая спрашивает имя и возраст, а потом выводит: "Привет, [имя]! Через год тебе будет [возраст+1] лет." Используй readLine() и преобразование типов.