English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kotlin базовый курс

Kotlin управление потоком

Функции в Kotlin

Строки в Kotlin

Kotlin面向对象(OOP)

Типы преобразования в Kotlin

В этой статье вы узнаете о преобразовании типов. Как с помощью примеров преобразовать переменную одного типа в другой.

В Kotlin значение одного типа не преобразуется автоматически в другой тип, даже если он больше. Это отличается от способа обработки числовых преобразований в Java. Например:

В Java

int number1 = 55;
long number2 = number1; // Валидный код

Здесь значение number1 типа int автоматически преобразуется в тип long и назначается переменной number2.

В Kotlin

val number1: Int = 55
val number2: Long = number1 // Ошибка: несоответствие типов.

Несмотря на этоLongРазмерность больше Int, но Kotlin не преобразует автоматически Int в Long. 

Напротив, вам нужно явно использовать toLong() (для преобразования в тип Long). Kotlin делает это для обеспечения безопасности типов и предотвращения意外ных ситуаций.

val number1: Int = 55
val number2: Long = number1.toLong()

Ниже приведен список функций для преобразования типов в Kotlin:

  • toByte() - Парсинг строки в символный байт и возврат результата.

  • toShort() - Преобразование значения Int в Short.

  • toInt() - Парсинг строки в Int и возврат результата.

  • toLong() - Парсинг строки в Long и возврат результата.

  • toFloat() - Парсинг строки в Float и возврат результата.

  • toDouble() - Парсинг строки в Double и возврат результата.

  • toChar() - Преобразование значения Int в Char.

Обратите внимание, что нет преобразования типов Boolean.

Преобразование из больших типов в маленькие.

Функция, упомянутая выше, может использоваться в двух направлениях (преобразование из больших типов в маленькие и преобразование из маленьких типов в большие).

Но преобразование из более крупного типа в более мелкий может привести к truncации значения. Например,

fun main(args: Array<String>) {
    val number1: Int = 545344
    val number2: Byte = number1.toByte()
    println("number1 = $number1")
    println("number2 = $number2")
}

При выполнении этого программы, вывод будет:

number1 = 545344
number2 = 64