原文: https://www.programiz.com/kotlin-programming/type-conversion

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

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

在 Java 中,

  1. int number1 = 55;
  2. long number2 = number1; // Valid code

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

在 Kotlin 中,

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

尽管Long的大小大于Int,但 Kotlin 不会自动将Int转换为Long

相反,您需要明确使用toLong()(以转换为Long类型)。 Kotlin 这样做是为了确保类型安全以避免意外。

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

以下是 Kotlin 中用于类型转换的函数列表:

注意,Boolean类型没有转换。


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

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

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

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

运行该程序时,输出为:

  1. number1 = 545344
  2. number2 = 64

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

  • 字符串到整数,和整数到字符串的转换
  • 长整数到整数,和整数到长整数的转换
  • 双精度到整数,和整数到双精度的转换
  • 整数到双精度,和双精度到整数的转换
  • 字符到整数,和整数到字符的转换
  • 字符串到长整数,和长整数到字符串的转换
  • 字符串到数组,和数组到字符串的转换
  • 字符串到布尔,和布尔到字符串的转换
  • 字符串到字节,和字节到字符串的转换
  • 整数到字节,和字节到整数的转换