# Kotlin 类型转换

> 原文： [https://www.programiz.com/kotlin-programming/type-conversion](https://www.programiz.com/kotlin-programming/type-conversion)

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

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

在 Java 中，

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

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

在 Kotlin 中，

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

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

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

```kt
val number1: Int = 55
val number2: Long = number1.toLong()
```

* * *

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

*   [`toByte()`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-byte.html)
*   [`toShort()`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/to-short.html)
*   [`toInt()`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-int.html)
*   [`toLong()`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-long.html)
*   [`toFloat()`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-float.html)
*   [`toDouble()`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/to-double.html)
*   [`toChar()`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/to-char.html)

注意，`Boolean`类型没有转换。

* * *

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

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

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

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

运行该程序时，输出为：

```kt
number1 = 545344
number2 = 64

```

* * *

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

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