之前的內(nèi)容:
在java中,低精度向高精度轉(zhuǎn)化是自動轉(zhuǎn)換的掀宋,而高精度向低精度轉(zhuǎn)化是強(qiáng)制轉(zhuǎn)換的
而在Kotlin中深纲,不能進(jìn)行類型的自動轉(zhuǎn)換,這一點(diǎn)是和java不同的
Java代碼
int a = 100 ;
long b = a ;
Java代碼中劲妙,int類型的a會自動轉(zhuǎn)換為long類型并分配給b湃鹊,代碼編譯通過
Kotlin代碼
var a: Int = 100
var b: Long = a //type mismatch
Kotlin代碼中,即使Long類型的范圍大于Int類型镣奋,但是a不會自動Long類型币呵,因此,你只能顯示的去轉(zhuǎn)換侨颈,你可以通過一下方式實(shí)現(xiàn)
var a: Int = 100
var b: Long = a.toLong()
Kotlin為我們提供如下的顯示轉(zhuǎn)換:
- toByte()
- toShort()
- toInt()
- toLong()
- toFloat()
- toDouble()
- toChar()
值得注意的是余赢,如果我們從范圍較大的類型轉(zhuǎn)換為范圍較小的類型是,會發(fā)生截斷
var a: Int = 545344
var b: Byte = a.toByte()
print("a = $a") //545344
print("b = $b") //64