之前的内容:
在java中,低精度向高精度转化是自动转换的,而高精度向低精度转化是强制转换的
而在Kotlin中,不能进行类型的自动转换,这一点是和java不同的
Java代码
int a = 100 ;
long b = a ;
Java代码中,int类型的a会自动转换为long类型并分配给b,代码编译通过
Kotlin代码
var a: Int = 100
var b: Long = a //type mismatch
Kotlin代码中,即使Long类型的范围大于Int类型,但是a不会自动Long类型,因此,你只能显示的去转换,你可以通过一下方式实现
var a: Int = 100
var b: Long = a.toLong()
Kotlin为我们提供如下的显示转换:
- toByte()
- toShort()
- toInt()
- toLong()
- toFloat()
- toDouble()
- toChar()
值得注意的是,如果我们从范围较大的类型转换为范围较小的类型是,会发生截断
var a: Int = 545344
var b: Byte = a.toByte()
print("a = $a") //545344
print("b = $b") //64