📜  Kotlin类型转换

📅  最后修改于: 2020-10-05 14:59:58             🧑  作者: Mango

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

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

在Java中,

int number1 = 55;
long number2 = number1;    // Valid code 

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

在科特林,

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()
  • toInt()
  • toLong()
  • toFloat()
  • toDouble()
  • toChar()

注意, Boolean类型没有转换。


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

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

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

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

运行该程序时,输出为:

number1 = 545344
number2 = 64

另请查看与类型转换有关的这些文章:

  • 字符串到整数,以及整数到字符串的转换
  • Long到Int,以及Int到Long转换
  • 从Double到Int,以及从Int到Double的转换
  • 多对多和双对多转换
  • 字符到整数,字符到字符
  • 字符串到长整数以及字符串到长整数的转换
  • 字符串到数组,以及数组到字符串的转换
  • 字符串到布尔,以及布尔到字符串的转换
  • 字符串到字节,以及字节到字符串的转换
  • 整数到字节,以及字节到整数的转换