2. Операторы и типы

В этом задании вы познакомитесь с операторами и типами данных в языке программирования Kotlin.

  1. Откройте IntelliJ IDEA, если она еще не открыта.
  2. Чтобы открыть интерактивную среду Kotlin REPL, выберите Инструменты > Kotlin > Kotlin REPL .2b1c3edac8da7c7.png

Как и в других языках, Kotlin использует операторы сложения +, вычитания и -деления для знаков плюс, минус, умножения и деления. Kotlin также поддерживает различные типы чисел, такие как , , , и .*/IntLongDoubleFloat

  1. Введите следующие выражения в REPL. Чтобы увидеть результат, нажмите Control+Enter( Command+Enterна Mac) после каждого из них.
1+1
⇒ res8: kotlin.Int = 2

53-3
⇒ res9: kotlin.Int = 50

50/10
⇒ res10: kotlin.Int = 5

1.0/2.0
⇒ res11: kotlin.Double = 0.5

2.0*3.5
⇒ res12: kotlin.Double = 7.0

Обратите внимание, что результаты операций сохраняют типы операндов, поэтому 1/2 = 0, но 1,0/2,0 = 0,5.

  1. Попробуйте использовать выражения с различными комбинациями целых и десятичных чисел.
6*50
⇒ res13: kotlin.Int = 300

6.0*50.0
⇒ res14: kotlin.Double = 300.0

6.0*50
⇒ res15: kotlin.Double = 300.0
  1. Вызывайте методы для чисел. Kotlin хранит числа как примитивные типы данных, но позволяет вызывать методы для чисел так, как если бы они были объектами.
2.times(3)
⇒ res5: kotlin.Int = 6

3.5.plus(4)
⇒ res8: kotlin.Double = 7.5

2.4.div(2)
⇒ res9: kotlin.Double = 1.2

ractice-using-types" data-text="Step 2: Practice using types" tabindex="-1" role="presentation">Шаг 2: Попрактикуйтесь в использовании типов.

Kotlin не допускает неявного преобразования типов. Поэтому вы не можете напрямую присвоить значение типа short переменной типа long или значение типа long переменной типа Intlong Long. Это связано с тем, что неявное преобразование чисел является распространенной причиной ошибок в программах. Вы всегда можете присваивать значения разных типов с помощью приведения типов.

  1. Чтобы увидеть некоторые из возможных преобразований типов, определите переменную соответствующего типа Intв REPL.
val i: Int = 6
  1. Создайте новую переменную, затем введите имя переменной, указанное выше, и запятую .to.
val b1 = i.to

IntelliJ IDEA отображает список возможных вариантов автозавершения. Это автозавершение работает для переменных и объектов любого типа.6495b0b44b910418.png

  1. Выберите значение toByte()из списка, затем распечатайте значение переменной.
val b1 = i.toByte()
println(b1)
⇒ 6
  1. Присвойте Byteзначения переменным разных типов.
val b2: Byte = 1 // OK, literals are checked statically
println(b2)
⇒ 1

val i1: Int = b2
⇒ error: type mismatch: inferred type is Byte but Int was expected

val i2: String = b2
⇒ error: type mismatch: inferred type is Byte but String was expected

val i3: Double = b2
⇒ error: type mismatch: inferred type is Byte but Double was expected
  1. Для заданий, выдавших ошибки, попробуйте использовать приведение типов.
val i4: Int = b2.toInt() // OK!
println(i4)
⇒ 1

val i5: String = b2.toString()
println(i5)
⇒ 1

val i6: Double = b2.toDouble()
println(i6)
⇒ 1.0
  1. Чтобы сделать длинные числовые константы более читабельными, Kotlin позволяет добавлять подчеркивания в числа там, где это вам кажется логичным. Попробуйте ввести разные числовые константы.
val oneMillion = 1_000_000
val socialSecurityNumber = 999_99_9999L
val hexBytes = 0xFF_EC_DE_5E
val bytes = 0b11010010_01101001_10010100_10010010

Kotlin поддерживает два типа переменных: изменяемые (mutable) и неизменяемые (immutable). Они задаются с помощью `null` varи `unchangeable` valсоответственно. С помощью val`null` можно присвоить значение один раз. Если попытаться присвоить значение повторно, возникнет ошибка. С помощью var`null` можно присвоить значение, а затем изменить его позже в программе.

  1. Определите переменные с помощью операторов val`and` и ` varor`, а затем присвойте им новые значения.
var fish = 1
fish = 2
val aquarium = 1
aquarium = 2
⇒ error: val cannot be reassigned

Вы можете присвоить fishзначение, а затем присвоить ему новое значение, поскольку оно определено с помощью var`.`. Попытка присвоить новое значение `.` приводит к aquariumошибке, поскольку оно определено с помощью ` val.`.

Тип переменной определяется компилятором, когда он может это выяснить из контекста. При желании вы всегда можете явно указать тип переменной, используя двоеточие.

  1. Определите несколько переменных и явно укажите их тип.
var fish: Int = 12
var lakes: Double = 2.5

После того как тип был присвоен вами или компилятором, изменить его невозможно, иначе возникнет ошибка.

В Kotlin строки представляют собой последовательности символов. Они определяются аналогично строкам в других языках программирования с помощью операторов "`$` для строк и `$` 'для отдельных символов. Конкатенацию строк можно осуществлять с помощью +оператора `$`. Kotlin также позволяет использовать шаблонные выражения строк в строковом литерале. Эти шаблоны представляют собой фрагменты кода, которые вычисляются и объединяются в строковый литерал. Шаблонные строки начинаются с символа '$', за которым следует выражение Kotlin. Это называется строковой интерполяцией .

  1. Создайте строковый шаблон.
val numberOfFish = 5
val numberOfPlants = 12
"I have $numberOfFish fish" + " and $numberOfPlants plants"
⇒ res20: kotlin.String = I have 5 fish and 12 plants
  1. Создайте строковый шаблон с выражением внутри. Как и в других языках, значением может быть результат выражения. Используйте фигурные скобки {}для определения выражения.
"I have ${numberOfFish + numberOfPlants} fish and plants"
⇒ res21: kotlin.String = I have 17 fish and plants

Last modified: Sunday, 5 April 2026, 12:12 PM