Kotlin基礎——基礎類型

在Kotlin中,一切都是對象

  • 整數:Byte、short、Int、Long,所有以未超出 Int 最大值的整型值初始化的變量都會推斷爲 Int 類型。如果初始值超過了其最大值,那麼推斷爲 Long 類型。 如需顯式指定 Long 型值,請在該值後追加 L 後綴。
  • 浮點數 :Float、Double,對於以小數初始化的變量,編譯器會推斷爲 Double 類型。 如需將一個值顯式指定爲 Float 類型,請添加 f 或 F 後綴
  • Kotlin較小的類型不能隱式轉換爲較大的類型,需要顯式轉換
    每個數字類型支持如下的轉換:
    toByte(): Byte
    toShort(): Short
    toInt(): Int
    toLong(): Long
    toFloat(): Float
    toDouble(): Double
    toChar(): Char
    不過算術運算會有重載做適當轉換
val l = 1L + 3 
  • 數字字面值中的下劃線(自 1.1 起),可以使用下劃線使數字常量更易讀
val oneMillion = 1_000_000
  • 數字是物理存儲爲JVM的原生類型,除非我們需要一個可空的引用(如Int?)或泛型,後者情況下會把數字裝箱,數字裝箱不一定保留同一性,但保留了相等性。(==比較對象的值,===比較對象的地址)
//比較同一性,如果a=1,打印結果爲兩個true,如果a=10000,打印結果爲:true、false
  	val a = 10000
    println(a === a)
    val b: Int? = a
    val c: Int? = a
    println(b === c)

//比較相等性,打印結果爲兩個true
	val a = 10000
    println(a == a)
    val b: Int? = a
    val c: Int? = a
    println(b == c)
  • 位運算,下面是完整的位運算列表(只用於Int和Long)
    shl(bits) – 有符號左移
    shr(bits) – 有符號右移
    ushr(bits) – 無符號右移
    and(bits) – 位與
    or(bits) – 位或
    xor(bits) – 位異或
    inv() – 位非
var x=1 shr 2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章