Kotlin 类型转换

在 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()

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

请注意,没有用于 `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

还可以查看这些与类型转换相关的文章

  • 字符串到整数,以及整数到字符串的转换
  • 长整数到整数,以及整数到长整数的转换
  • 双精度浮点数到整数,以及整数到双精度浮点数的转换
  • 长整数到双精度浮点数,以及双精度浮点数到长整数的转换
  • 字符到整数,以及整数到字符的转换
  • 字符串到长整数,以及长整数到字符串的转换
  • 字符串到数组,以及数组到字符串的转换
  • 字符串到布尔值,以及布尔值到字符串的转换
  • 字符串到字节,以及字节到字符串的转换
  • 整数到字节,以及字节到整数的转换
你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战