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

Conversão de Tipos no Kotlin

Neste artigo, você aprenderá sobre conversão de tipos. Como converter uma variável de um tipo para outro usando exemplos.

No Kotlin, um valor numérico de um tipo não é automaticamente convertido para outro tipo, mesmo que o outro tipo seja maior. Isso é diferente da maneira como o Java lida com conversões de números. Por exemplo:

No Java,

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

Aqui, o número do tipo int1Seu valor será automaticamente convertido para o tipo long e atribuído à variável number2.

No Kotlin,

val número1: Int = 55
val número2: Long = number1   // Erro: tipo incompatível.

EmboraLongO tamanho é maior que Int, mas o Kotlin não converte automaticamente Int para Long. 

Por outro lado, você precisa usar explicitamente toLong() (para converter para o tipo Long). O Kotlin faz isso para garantir a segurança do tipo e evitar erros inesperados.

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

A seguir, lista de funções usadas para conversão de tipos no Kotlin:

  • toByte() - Converta a stringa em um byte com sinal e retorne o resultado.

  • toShort() - Converta o valor Int para Short.

  • toInt() - Converta a stringa em um número Int e retorne o resultado.

  • toLong() - Converta a stringa em um número Long e retorne o resultado.

  • toFloat() - Converta a stringa em um número Float e retorne o resultado.

  • toDouble() - Converta a stringa em um número Double e retorne o resultado.

  • toChar() - Converta o valor Int para Char.

Atenção, não há conversão para o tipo Boolean.

Conversão de tipos de tipos maiores para tipos menores

As funções mencionadas acima podem ser usadas em duas direções (conversão de tipos de tipos maiores para menores e conversão de tipos de tipos menores para maiores).

Mas, a conversão de tipos de tipos maiores para tipos menores pode truncar o valor. Por exemplo:

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")
}

Quando você executar o programa, a saída será:

número1 = 545344
número2 = 64