Kotlin 类型转换

在本文中,您将学习类型转换。如何借助示例将一种类型的变量转换为另一种类型。

在Kotlin中,一种类型的数值不会自动转换为另一种类型,即使另一种类型更大。这与Java处理数字转换的方式不同。例如:

在Java中,

int number1 = 55;
long number2 = number1;    // 有效代码

在这里,int类型的number1的值会自动转换为long类型,并分配给变量number2。

在kotlin,

val number1: Int = 55
val number2: Long = number1   // Error: type mismatch.

尽管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 类型的转换。

从较大的类型 转换为 较小的类型

上面提到的函数可以在两个方向上使用(从较大类型到较小类型的转换 以及从较小类型到较大类型的转换)。

但是,从较大的类型到较小的类型的转换可能会截断该值。例如,

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

运行该程序时,输出为:

number1 = 545344
number2 = 64