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

Conversión de tipos en Kotlin

En este artículo, aprenderá sobre la conversión de tipos. Cómo utilizar ejemplos para convertir una variable de un tipo a otro.

En Kotlin, un valor numérico de un tipo no se convierte automáticamente a otro tipo, incluso si el tipo es mayor. Esto difiere de la forma en que Java maneja las conversiones de números. Por ejemplo:

En Java,

int number1 = 55;
long number2 = number1;    // Código válido

Aquí, el número de tipo int1Su valor se convertirá automáticamente a tipo long y se asignará a la variable number2.

En Kotlin,

val número1: Int = 55
val número2: Long = number1   // Error: tipo incompatibles.

A pesar deLongEl tamaño es mayor que Int, pero Kotlin no convierte automáticamente Int a Long. 

Por el contrario, debe usar explícitamente toLong() (para convertir a tipo Long). Kotlin hace esto para asegurar la seguridad de tipos y evitar sorpresas.

val número1: Int = 55
val número2: Long = number1.toLong()

A continuación, se muestra una lista de funciones utilizadas en Kotlin para la conversión de tipos:

  • toByte() - Analizar una cadena de caracteres en un número de bytes con signo y devolver el resultado.

  • toShort() - Convertir un valor Int a Short.

  • toInt() - Analizar una cadena de caracteres en un número Int y devolver el resultado.

  • toLong() - Analizar una cadena de caracteres en un número Long y devolver el resultado.

  • toFloat() - Analizar una cadena de caracteres en un número Float y devolver el resultado.

  • toDouble() - Analizar una cadena de caracteres en un número Double y devolver el resultado.

  • toChar() - Convertir un valor Int a Char.

Tenga en cuenta que no hay conversión para el tipo Boolean.

Conversión de tipo de mayor a menor

Las funciones mencionadas anteriormente se pueden usar en ambas direcciones (conversión de tipo de mayor a menor y conversión de tipo de menor a mayor).

Sin embargo, la conversión de un tipo más grande a un tipo más pequeño puede truncar el valor. Por ejemplo:

fun main(args : Array<String>) {
    val número1: Int = 545344
    val número2: Byte = número1.toByte()
    println("número1 =1")
    println("número2 =2")
}

Al ejecutar el programa, la salida será:

número1 = 545344
número2 = 64