Kotlin學習筆記——易錯點總結

1 前言

    剛剛接觸Kotlin,會有許多地方需要注意的,特別是本身有Java或者其他開發語言基礎的人,更容易掉進這些陷阱。

2 語法篇

2.1 數字類型之間的強制類型轉換

    在Kotlin中,數字類型沒有基礎數字類型,是封箱的包裝類(類似於Java中的IntegerLong等),所以,在數字類型之間如果需要進行類型轉換,無法使用as運算符直接進行類型轉換。

  • Java中,如果使用基本數字類型,是可以直接進行類型轉換的,但是如果是封裝類則不行
int i = 200;
long l = (long)i; // 這裏甚至可以省略掉(long)
float f = (float)i;
double d = (double)i;

// 
Integer in = 200;
Long lo = (Long) in; // 這裏會編譯報錯
  • Kotlin中,使用as運算符對數字類型進行強制轉換,編譯不會報錯(但是會有警告),但運行時會報ClassCastException,但是Kotlin中數字類型既然是封裝類,那麼他必然有成員函數可以轉換成其他數字類型。
val i = 2 // 自動類型識別Int

// println(i as Float) // 編譯不報錯,但是有警告“This cast can never succeed”,運行會報ClassCastException

println(i.toFloat()) // Kotlin中數字類型內置成員函數,使用成員函數進行類型轉換

PS: 對於新手來說,以上錯誤最容易犯

內容持續更新中…

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章