在 Kotlin 中,一个数字类型的值不会自动转换为另一个类型,即使另一个类型更大。这与 Java 处理数字转换的方式不同。例如;
在 Java 中,
int number1 = 55; long number2 = number1; // Valid code
这里,类型为 `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()
请注意,没有用于 `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
还可以查看这些与类型转换相关的文章
- 字符串到整数,以及整数到字符串的转换
- 长整数到整数,以及整数到长整数的转换
- 双精度浮点数到整数,以及整数到双精度浮点数的转换
- 长整数到双精度浮点数,以及双精度浮点数到长整数的转换
- 字符到整数,以及整数到字符的转换
- 字符串到长整数,以及长整数到字符串的转换
- 字符串到数组,以及数组到字符串的转换
- 字符串到布尔值,以及布尔值到字符串的转换
- 字符串到字节,以及字节到字符串的转换
- 整数到字节,以及字节到整数的转换