Kotlin 类型转换
Kotlin 提供了一些简洁和安全的方式进行类型转换。以下是几种常见的类型转换方法:
智能类型转换:
Kotlin 的编译器具备智能类型转换的能力。例如,如果你对一个变量进行is
检查并返回 true,编译器会自动将该变量转换为相应的类型。fun demo(x: Any) {
if (x is String) {
println(x.length) // x 自动被转换为 String
}
}
显式转换:
toInt()
: 转换为Int
。toDouble()
: 转换为Double
。toFloat()
: 转换为Float
。toLong()
: 转换为Long
。toShort()
: 转换为Short
。toByte()
: 转换为Byte
。toChar()
: 转换为Char
。
val number = "123"
val intNumber: Int = number.toInt()
val doubleNumber: Double = number.toDouble()
安全转换 (
as?
):
使用as?
进行安全类型转换,如果转换失败,则返回null
。fun demo(x: Any) {
val str: String? = x as? String
println(str?.length) // 如果 x 不是 String,str 为 null
}
不安全转换 (
as
):
使用as
进行不安全的显式类型转换,如果类型不兼容会抛出ClassCastException
。fun demo(x: Any) {
val str = x as String
println(str.length)
}
建议使用安全转换来避免运行时错误,除非你非常确定类型兼容性。Kotlin 的类型系统和转换机制致力于减少常见的类型转换错误,提高代码的安全性和稳定性。