原文: https://beginnersbook.com/2018/09/kotlin-type-conversion/
类型转换是将一种数据类型转换为另一种类型的过程,例如 - 将int转换为long,long转换为double等。在教程中,我们将学习如何在 Kotlin 中执行类型转换。
在 Kotlin 和 Java 中进行类型转换
在 java 中,一种类型会自动转换为其他类型(在某些情况下),在 Kotlin 中我们需要显式转换类型。
例如:
Java:
Int自动转换为Long数据类型,因为long大于int。
// This code is valid in Java, even though we are converting int to long// because long is larger than int and it can hold integersint num1 = 101;long num2 = num1;
Kotlin:
在 Kotlin 中转换不是自动的,我们需要明确地进行类型转换。
// This code is invalid in Kotlin. This will cause compile time// error, type mismatchval num1: Int = 101val num2: Long = num1
Kotlin 中的正确代码:
我们使用toLong()函数在 Kotlin 中将int转换为long。
val num1: Int = 101val num2: Long = num1.toLong()
更多 Kotlin 中的类型转换函数
在上面的例子中,我们已经看到我们如何使用toLong()函数将整数转换为Long类型。同样,我们在 Kotlin 中有其他功能可以帮助我们进行类型转换。
toChar()- 将类型转换为Char类型。toInt()- 将类型转换为Int类型。toLong()- 将类型转换为Long类型。toFloat()- 将类型转换为Float类型。toDouble()- 将类型转换为Double类型。toByte()- 将类型转换为Byte类型。toShort()- 将类型转换为Short类型。
简单类型转换实例
/*** created by Chaitanya for Beginnersbook.com*/package beginnersbookfun main(args : Array<String>){/*** Double to int type casting*/println("4.554 to int: " + (4.554.toInt()))/*** int to Char type casting*/println("66 to Char: " + (65.toChar()))/*** Char to int type casting*/println("B to int: " + ('B'.toInt()))}
输出:

当我们将较大的类型转换为较小的类型时会发生什么?
将较大类型转换为较小类型时,我们有两种可能的结果。如果我们转换为较小类型的值超出目标类型的范围,则结果将被截断。但是,当值在目标类型的范围内时,它将被转换而不会被截断。
示例 1:当值超出目标类型的范围时
在这个例子中,我们将long类型转换为int类型,其中long类型的值超出整数类型的范围。
fun main(args : Array<String>) {val num1: Long = 5453448989999998988val num2: Int = num1.toInt()println("Number num1 is: $num1")println("Number num2 is: $num2")}
输出:
Number num1 is: 5453448989999998988Number num2 is: 2041161740
示例 2:当值在目标类型的范围内时
在这个例子中,我们将long类型转换为int类型,其中long类型的值在整数类型的范围内。
fun main(args : Array<String>) {val num1: Long = 5453448val num2: Int = num1.toInt()println("Number num1 is: $num1")println("Number num2 is: $num2")}
输出:
Number num1 is: 5453448Number num2 is: 5453448
